/** * Creates a user from the provided user data * @param array * @return void */ private function createUser($userData) { $user = new User(); $user->username = $userData['username']; $user->password = $userData['password']; $role = Role::where('name', '=', $userData['role'])->first(); $user->role()->associate($role); $user->save(); $this->users[$userData['username']] = $user; }
/** * Store a newly created resource in storage. * This route will be called automatically on a POST on the base path * * @return Response */ public function store() { $user = new User(); $user->username = Input::get('username'); $user->password = Input::get('password'); try { $user->role()->associate(Role::where('name', '=', Input::get('role'))->firstOrFail()); } catch (ModelNotFoundException $e) { return $this->handleInvalidRole(Input::get('role')); } $user->save(); return Response::json(array('message' => 'user created'), 201); }
/** * Test if a given user has capability to perform a certain action. * * @param User $user * @param string $action * @return boolean */ public function userCan($user, $action) { // Ensure a valid user object is given if (!$user instanceof User) { return false; } // Test for authorship $isAuthor = $this->username() === $user->username(); if ($isAuthor && in_array($action, array('edit', 'delete'))) { return true; } // Test if the user has the required role $caps = plugin('comments')->config()->get('capabilities'); $roles = explode('|', a::get($caps, $action)); return in_array('all', $roles) || in_array($user->role(), $roles); }
/** * Displays a form for editing a current user. */ public static function edit($id) { $user = User::user()->find($id); if (isset($_POST['update_user'])) { // First check if new email is already in use if ($_POST['email'] == $user->email || !User::user()->where('email', '=', $_POST['email'])->first()) { $status = User::user()->where('id', '=', $id)->update(array('email' => $_POST['email'], 'pass' => strlen($_POST['pass']) ? md5($_POST['pass']) : $user->pass)); Db::table('habtm_userroles_userusers')->where('user_user_id', '=', $user->id)->delete(); if (isset($_POST['role_id'])) { foreach ($_POST['role_id'] as $roleId) { Db::table('habtm_userroles_userusers')->insert(array('user_role_id' => $roleId, 'user_user_id' => $user->id)); } } if ($status) { Message::ok('User updated successfully.'); } else { Message::error('Error updating user.'); } } else { Message::error('That email address is already in use.'); } } $options = array(); $selected = array(); $roles = User::role()->all(); $selectedRoles = Db::table('habtm_userroles_userusers')->where('user_user_id', '=', $id)->all(); foreach ($roles as $role) { $options[$role->id] = $role->name; } if ($selectedRoles) { foreach ($selectedRoles as $role) { $selected[] = $role->user_role_id; } } $fields[] = array('fields' => array('email' => array('title' => 'Email', 'type' => 'text', 'default_value' => $user->email), 'pass' => array('title' => 'Password', 'type' => 'password'), 'role_id[]' => array('title' => 'Roles', 'type' => 'select', 'options' => $options, 'selected' => $selected, 'attributes' => array('multiple' => 'multiple')), 'update_user' => array('value' => 'Update User', 'type' => 'submit'))); return array(array('title' => 'Edit User', 'content' => Html::form()->build($fields))); }
protected function createUser($userData) { $user = new User(); $user->username = $userData['username']; $user->password = $userData['password']; $user->role()->associate(Role::where('name', '=', $userData['role'])->firstOrFail()); $user->save(); return $user; }
/** * Deletes a role and redirects back to manage roles page. */ public static function delete($id) { if (User::role()->delete($id)) { Message::ok('Role deleted successfully.'); } else { Message::error('Error deleting role.'); } Url::redirect('admin/user/role/manage'); }
</head> <body> <div class="container" id="page"> <div id="header"> <div id="logo"><?php echo CHtml::encode(Yii::app()->name); ?> </div> </div><!-- header --> <div id="mainmenu"> <?php $this->widget('zii.widgets.CMenu', array('items' => array(array('label' => 'Home', 'url' => array('/site/index')), array('label' => 'Abouts', 'url' => array('/site/page', 'view' => 'about')), array('label' => 'Организации', 'url' => ['/company/index'], 'visible' => User::role() != 'user'), array('label' => 'Contact', 'url' => array('/site/contact')), array('label' => 'Login', 'url' => array('/site/login'), 'visible' => Yii::app()->user->isGuest), array('label' => 'Logout (' . Yii::app()->user->role . ')', 'url' => array('/site/logout'), 'visible' => !Yii::app()->user->isGuest)))); ?> </div><!-- mainmenu --> <?php if (isset($this->breadcrumbs)) { ?> <?php $this->widget('zii.widgets.CBreadcrumbs', array('links' => $this->breadcrumbs)); ?> <!-- breadcrumbs --> <?php } ?> <?php echo $content;