/** * Add and Edit user member */ public static function userMemberAddEdit($userId, $data = array()) { UserMember::where('user_id', '=', $userId)->delete(); foreach ($data as $val) { $user_member = new UserMember(); $user_member->user_id = $userId; $user_member->group_id = $val; $user_member->date_created = new DateTime(); $user_member->save(); } }
/** * Update the specified resource in storage. * * @param int $id * @return Response */ public function update($id) { if (ACL::checkUserPermission('user.edit') == false) { return Redirect::action('dashboard'); } $user = User::where('id', $id)->find($id); $input = Input::all(); $user->username = Input::get('username'); $user->fullname = Input::get('fullname'); $user->email = Input::get('email'); $user->company_name = Input::get('company'); $user->confirmed = Input::get('confirm'); if (Input::has('changepassword')) { if (User::checkUserPassword($id, Input::get('password')) == true) { $msgType = 'error'; $message = 'Password has been used before by the user. <br /> Change the user\'s password at least 5 times before using the password again.'; return Redirect::action('user.edit')->with($msgType, $message); } $user->password = Hash::make(Input::get('changepassword')); $user->last_password_change = new DateTime(); $passwords = json_decode($user->passwords, true); if (sizeof($passwords) == 0) { $temp = array(); $temp[] = Hash::make(Input::get('password')); $user->passwords = json_encode($temp); } else { array_push($passwords, Hash::make(Input::get('password'))); if (sizeof($passwords) > 5) { array_shift($passwords); } $user->passwords = json_encode($passwords); } } $user->save(); if (Input::has('usermember')) { $userMember = Input::get('usermember'); UserPermissions::where('user_id', '=', $user->id)->delete(); ACL::userMemberAddEdit($user->id, $userMember); } else { UserPermissions::where('user_id', '=', $user->id)->delete(); UserMember::where('user_id', '=', $id)->delete(); } $message = 'User has been modified'; return Redirect::action('settings.user')->with('success', $message); }