/** * Run the migrations. * * @return void */ public function up() { Schema::create('backend_users_groups', function (Blueprint $table) { $table->unsignedInteger('user_id'); $table->unsignedInteger('group_id'); $table->primary(['user_id', 'group_id']); $table->foreign('user_id')->references('id')->on('backend_users')->onDelete('cascade'); $table->foreign('group_id')->references('id')->on('backend_groups')->onDelete('cascade'); }); //Add initial user. $group = Group::create(['caption' => 'Administrators', 'permissions' => Backend::getAllAcl()]); $user = User::create(['email' => '*****@*****.**', 'password' => 'admin', 'active' => 1]); $user->groups()->attach($group); }
/** * @param $id * @return array * @throws \Exception * @Permissions("system.users.write") */ public function anyDelete($id) { $result = UserModel::query()->findOrFail($id)->delete(); return ['result' => $result]; }
/** * Run the database seeds. * * @return void */ public function run() { Model::unguard(); User::create(['email' => '*****@*****.**', 'password' => 'admin', 'active' => 1]); }
/** * Check items permissions. * * @param User $user * @param array $items * * @return array */ protected function accessFilter(User $user, array $items) { $filteredItems = array_filter($items, function ($item) use($user) { return $item['permissions'] === null || $user->hasAccess($item['permissions'], false); }); array_walk($filteredItems, function (&$item) use($user) { if (count($item['items']) > 0) { $item['items'] = $this->accessFilter($user, $item['items']); } }); //cleanup empty menus return array_filter($filteredItems, function ($item) use($user) { return $item['url'] !== null || count($item['items']) > 0; }); }