1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- <?php
- namespace Modules\ContentManage\Http\Controllers;
- use Catch\Base\CatchController;
- 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;
- }
- }
- }
|