123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- <?php
- /**
- * ${CARET}
- * @file:${FILE_NAME}
- * @Created by gnitif
- * @Date: 2023/5/6
- * @Time: 16:01
- */
- namespace Modules\CpManage\Http\Controllers;
- use Illuminate\Support\Collection;
- use Illuminate\Support\Facades\DB;
- use Modules\User\Models\User;
- trait UserTrait
- {
- // 当前登录用户
- protected $currentUser;
- /**
- * 获取当前登录用户
- * @return User
- */
- protected function getCurrentUser(): User {
- if(!$this->currentUser) {
- $this->currentUser = $this->getLoginUser();
- }
- return $this->currentUser;
- }
- /**
- * 当前用户的所有的角色标识的结合
- * @return Collection
- */
- protected function listUserRoles():Collection {
- return $this->getCurrentUser()->roles->pluck('identify');
- }
- /**
- * 当前用户是否是cp角色
- * @return bool
- */
- public function userIsCp():bool {
- return $this->listUserRoles()->contains('cp');
- }
- /**
- * 如果当前用户是cp角色,返回cp_name,否则返回null
- * @return string
- */
- public function getUserCpName():string|null {
- if($this->userIsCp()) {
- return DB::table('user_belong_to_cp')
- ->where([
- 'is_enabled' => 1,
- 'user_id' => $this->getCurrentUser()->id,
- ])->value('cp_name');
- } else {
- return null;
- }
- }
- }
|