Beispiel #1
0
 /**
  * 更新管理型用户
  *
  * @param  Douyasi\Models\User $manager
  * @param  array $inputs
  * @return void
  */
 private function updateManager($manager, $inputs)
 {
     $manager->nickname = e($inputs['nickname']);
     $manager->realname = e($inputs['realname']);
     $manager->is_lock = e($inputs['is_lock']);
     if (!empty($inputs['password']) && !empty($inputs['password_confirmation'])) {
         $manager->password = bcrypt(e($inputs['password']));
     }
     if ($manager->save()) {
         //确保一个管理型用户只拥有一个角色
         $roles = $manager->roles;
         if ($roles->isEmpty()) {
             //判断角色结果集是否为空
             $manager->roles()->attach($inputs['role']);
             //空角色,则直接同步角色
         } else {
             if (is_array($roles)) {
                 //如果为对象数组,则表明该管理用户拥有多个角色
                 //则删除多个角色,再同步新的角色
                 $manager->detachRoles($roles);
                 $manager->roles()->attach($inputs['role']);
                 //同步角色
             } else {
                 if ($roles->first()->id !== $inputs['role']) {
                     $manager->detachRole($roles->first());
                     $manager->roles()->attach($inputs['role']);
                     //同步角色
                 }
             }
         }
         //上面这一大段代码就是保证一个管理型用户只拥有一个角色
         //Entrust扩展包自身是支持一个用户拥有多个角色的,但在本内容管理框架系统中,限定一个用户只能拥有一个角色
     }
 }
 /**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     DB::table('admins')->delete();
     $admin_founder = new User();
     $admin_founder->username = $admin_founder->nickname = e('wuzifeng');
     $admin_founder->password = bcrypt(e('admin'));
     $admin_founder->email = e('*****@*****.**');
     $admin_founder->realname = e('wzf');
     $admin_founder->user_type = 'manager';
     //管理型用户
     $admin_founder->confirmation_code = md5(uniqid(mt_rand(), true));
     $admin_founder->confirmed = true;
     //确定用户已被验证激活
     $admin_founder->save();
     $admin_admin = new User();
     $admin_admin->username = $admin_admin->nickname = e('admin');
     $admin_admin->password = bcrypt(e('admin'));
     $admin_admin->email = e('*****@*****.**');
     $admin_admin->realname = e('admin');
     $admin_admin->user_type = 'manager';
     //管理型用户
     $admin_admin->confirmation_code = md5(uniqid(mt_rand(), true));
     $admin_admin->confirmed = true;
     //确定用户已被验证激活
     $admin_admin->save();
     $admin_provider = new User();
     $admin_provider->username = $admin_provider->nickname = e('provider');
     $admin_provider->password = bcrypt(e('admin'));
     $admin_provider->email = e('*****@*****.**');
     $admin_provider->realname = e('provider');
     $admin_provider->user_type = 'manager';
     //管理型用户
     $admin_provider->confirmation_code = md5(uniqid(mt_rand(), true));
     $admin_provider->confirmed = true;
     //确定用户已被验证激活
     $admin_provider->save();
     $admin_garage = new User();
     $admin_garage->username = $admin_garage->nickname = e('garage');
     $admin_garage->password = bcrypt(e('admin'));
     $admin_garage->email = e('*****@*****.**');
     $admin_garage->realname = e('garage');
     $admin_garage->user_type = 'manager';
     //管理型用户
     $admin_garage->confirmation_code = md5(uniqid(mt_rand(), true));
     $admin_garage->confirmed = true;
     //确定用户已被验证激活
     $admin_garage->save();
     $admin_guest = new User();
     $admin_guest->username = $admin_guest->nickname = e('guest');
     $admin_guest->password = bcrypt(e('admin'));
     $admin_guest->email = e('*****@*****.**');
     $admin_guest->realname = e('guest');
     $admin_guest->user_type = 'manager';
     //管理型用户
     $admin_guest->confirmation_code = md5(uniqid(mt_rand(), true));
     $admin_guest->confirmed = true;
     //确定用户已被验证激活
     $admin_guest->save();
     DB::table('roles')->delete();
     $role_founder = new Role();
     $role_founder->name = 'Founder';
     $role_founder->display_name = '创始人';
     // optional
     $role_founder->description = 'BiBi项目的创始人';
     // optional
     $role_founder->save();
     $role_partner = new Role();
     $role_partner->name = 'Partner';
     $role_partner->display_name = '合伙人';
     // optional
     $role_partner->description = '与创始人共同创业者';
     // optional
     $role_partner->save();
     $role_admin = new Role();
     $role_admin->name = 'Admin';
     $role_admin->display_name = '超级管理员';
     // optional
     $role_admin->description = 'BiBi后台系统的超级管理员';
     // optional
     $role_admin->save();
     $role_invester = new Role();
     $role_invester->name = 'Invester';
     $role_invester->display_name = '投资人';
     // optional
     $role_invester->description = '项目的投资者';
     // optional
     $role_invester->save();
     $role_provider = new Role();
     $role_provider->name = 'Provider';
     $role_provider->display_name = '供应商';
     $role_provider->description = '与BiBi合作,提供优惠券等服务的商家(暂时不包含车厂)';
     $role_provider->save();
     $role_garage = new Role();
     $role_garage->name = 'Garage';
     $role_garage->display_name = '车厂';
     $role_garage->description = '与BiBi合作,提供优惠券等服务的车厂';
     $role_garage->save();
     $role_operator = new Role();
     $role_operator->name = 'Operator';
     $role_operator->display_name = '操作员';
     $role_operator->description = '审查供应商以及优惠券等资料';
     $role_operator->save();
     $role_editor = new Role();
     $role_editor->name = 'Editor';
     $role_editor->display_name = '编辑';
     $role_editor->description = '官方网站内容编辑者';
     $role_editor->save();
     $role_guest = new Role();
     $role_guest->name = 'Guest';
     $role_guest->display_name = '客人';
     $role_guest->description = '仅供演示';
     $role_guest->save();
     DB::table('permissions')->delete();
     $permission_manage_contents = new Permission();
     $permission_manage_contents->name = 'manage_contents';
     $permission_manage_contents->display_name = '管理内容';
     // optional
     // Allow a admin to...
     $permission_manage_contents->description = '管理后台所有内容';
     // optional
     $permission_manage_contents->save();
     $permission_manage_users = new Permission();
     $permission_manage_users->name = 'manage_users';
     $permission_manage_users->display_name = '管理用户';
     $permission_manage_users->description = '管理后台所有用户';
     $permission_manage_users->save();
     $permission_manage_system = new Permission();
     $permission_manage_system->name = 'manage_system';
     $permission_manage_system->display_name = '管理系统';
     $permission_manage_system->description = '管理后台系统';
     $permission_manage_system->save();
     $permission_manage_providers = new Permission();
     $permission_manage_providers->name = 'manage_providers';
     $permission_manage_providers->display_name = '管理供应商';
     $permission_manage_providers->description = '管理后台所有供应商';
     $permission_manage_providers->save();
     $permission_manage_slef_garage = new Permission();
     $permission_manage_slef_garage->name = 'manage_slef_garage';
     $permission_manage_slef_garage->display_name = '管理车厂自身';
     $permission_manage_slef_garage->description = '管理车厂自身资料';
     $permission_manage_slef_garage->save();
     $permission_manage_self_coupons = new Permission();
     $permission_manage_self_coupons->name = 'manage_self_coupons';
     $permission_manage_self_coupons->display_name = '管理自身优惠券';
     $permission_manage_self_coupons->description = '管理供应商自身优惠券';
     $permission_manage_self_coupons->save();
     $permission_check_providers = new Permission();
     $permission_check_providers->name = 'check_providers';
     $permission_check_providers->display_name = '审查所有供应商';
     $permission_check_providers->description = '审查所有供应商资料';
     $permission_check_providers->save();
     $permission_check_garages = new Permission();
     $permission_check_garages->name = 'check_garages';
     $permission_check_garages->display_name = '审查所有车厂';
     $permission_check_garages->description = '审查所有车厂资料';
     $permission_check_garages->save();
     $permission_check_coupons = new Permission();
     $permission_check_coupons->name = 'check_coupons';
     $permission_check_coupons->display_name = '审查所有优惠券';
     $permission_check_coupons->description = '审查所有供应商的优惠券资料';
     $permission_check_coupons->save();
     $permission_view_coupons_used = new Permission();
     $permission_view_coupons_used->name = 'view_coupons_used';
     $permission_view_coupons_used->display_name = '查看已使用优惠券';
     $permission_view_coupons_used->description = '查看所有用户优惠券的使用情况';
     $permission_view_coupons_used->save();
     $permission_view_self_coupons_used = new Permission();
     $permission_view_self_coupons_used->name = 'view_self_coupons_used';
     $permission_view_self_coupons_used->display_name = '查看供应商已使用优惠券';
     $permission_view_self_coupons_used->description = '查看供应商用户优惠券的使用情况';
     $permission_view_self_coupons_used->save();
     DB::table('permission_role')->delete();
     $role_admin->attachPermissions(array($permission_manage_system, $permission_manage_contents, $permission_manage_users, $permission_check_garages, $permission_check_coupons));
     $role_garage->attachPermissions(array($permission_manage_slef_garage, $permission_manage_self_coupons, $permission_view_self_coupons_used));
     DB::table('role_admin')->delete();
     // role attach alias
     $admin_admin->attachRole($role_admin);
     // parameter can be an Role object, array, or id
     $admin_garage->attachRole($role_garage);
     // or eloquent's original technique
     //         $user->roles()->attach($admin->id); // id only
 }