protected function createUser(array $data)
 {
     $user = new \Users\Model\User();
     $user->exchangeArray($data);
     $userTable = $this->getServiceLocator()->get('UserTable');
     $userTable->saveUser($user);
     return true;
 }
Example #2
0
         Log::debug('Opensim creating new account.');
     } else {
         Log::error('Opensim event: create account for ' . $account->firstname . ' ' . $account->lastname . ' . Account already exists.');
     }
 });
 Event::listen('users.updated', function ($user) {
     $account = \Opensim\Model\Os\UserAccount::where_PrincipalID($user->uuid)->first();
     if (!is_null($account)) {
         $account = new \Opensim\Model\Os\UserAccount();
         $opensim_account = $account->update_account($user);
     } else {
         Log::error('Opensim event: update account for [' . $user->uuid . '] does not exist.');
     }
 });
 Event::listen('users.updated_many', function ($user_list) {
     $users = Users\Model\User::where_in('id', $user_list)->get();
     $users_uuids = array();
     foreach ($users as $user) {
         $users_uuids[$user->uuid] = $user;
     }
     $user_accounts = Opensim\Model\Os\UserAccount::where_in('PrincipalID', array_keys($users_uuids))->get();
     foreach ($user_accounts as $user_account) {
         if (isset($users_uuids[$user_account->principalid])) {
             $user_account->update_account($users_uuids[$user_account->principalid]);
         }
     }
 });
 Event::listen('users.deleted', function ($user) {
     $account = new \Opensim\Model\Os\UserAccount();
     $account = $account->destroy_account($user);
 });
Example #3
0
 public function delete_destroy($group_id)
 {
     if (!ctype_digit($group_id)) {
         $this->data['message'] = __('groups::lang.Invalid id')->get(ADM_LANG);
         $this->data['message_type'] = 'error';
         return Redirect::back()->with($this->data);
     }
     if (Bundle::exists('permissions')) {
         $group = Groups\Model\Group::with('permissions')->find($group_id);
     } else {
         $group = Groups\Model\Group::find($group_id);
     }
     if (!isset($group) or empty($group)) {
         $this->data['message'] = __('groups::lang.Sorry cannot find group to delete')->get(ADM_LANG);
         $this->data['message_type'] = 'error';
         return Redirect::back()->with($this->data);
     }
     $users_group = Groups\Model\Group::where('slug', '=', 'users')->first();
     // if there is users on this group
     // set all users back to users group
     if (isset($users_group) and isset($users_group->id)) {
         $update = Users\Model\User::where('group_id', '=', $group->id)->update(array('group_id' => $users_group->id));
     }
     if (isset($group->permissions) and !empty($group->permissions)) {
         $group->permissions()->delete();
     }
     $group->delete();
     Event::fire('mwi.group_deleted', array($group));
     $this->data['message'] = __('groups::lang.Group was successfully destroyed')->get(ADM_LANG);
     $this->data['message_type'] = 'success';
     return Redirect::to(ADM_URI . '/groups')->with($this->data);
 }
Example #4
0
 public function post_get_users()
 {
     $status = Input::get('status');
     $group = Input::get('group');
     $users = Users\Model\User::select('*');
     if (isset($group) and $group != '0' and !empty($group)) {
         $users->where('group_id', '=', $group);
     }
     if (isset($status) and $status != '0' and !empty($status)) {
         $users->where('status', '=', $status);
     }
     $users = $users->get(array('email', 'avatar_first_name', 'avatar_last_name'));
     $response = array();
     // We need to build the array for response
     foreach ($users as $user) {
         $response[$user->email] = $user->avatar_first_name . ' ' . $user->avatar_last_name;
     }
     return json_encode($response);
 }
Example #5
0
 public function delete_destroy($user_id)
 {
     if (!ctype_digit($user_id)) {
         $this->data['message'] = __('users::lang.Invalid id to delete user')->get(ADM_LANG);
         $this->data['message_type'] = 'error';
         return Redirect::to(ADM_URI . '/users')->with($this->data);
     }
     $user = Users\Model\User::find($user_id);
     if (!isset($user) or empty($user)) {
         $this->data['message'] = __('users::lang.Sorry can\'t find user to delete')->get(ADM_LANG);
         $this->data['message_type'] = 'error';
         return Redirect::to(ADM_URI . '/users')->with($this->data);
     }
     if ($user->is_core) {
         $this->data['message'] = __('users::lang.Sorry can\'t delete a core user')->get(ADM_LANG);
         $this->data['message_type'] = 'error';
         return Redirect::to(ADM_URI . '/users')->with($this->data);
     }
     $user->delete();
     Event::fire('users.deleted', array($user));
     //Session::flash('message', 'User was successfully deleted.');
     //Session::flash('message_type', 'success');
     $this->data['message'] = __('users::lang.User was successfully deleted')->get(ADM_LANG);
     $this->data['message_type'] = 'success';
     if (Request::ajax()) {
         // the element that hold the user info
         // to be removed by ajax
         $data = array('flash_message' => array('message_type' => 'success', 'messages' => array(__('users::lang.User was successfully deleted')->get(ADM_LANG))), 'hide' => array('identifier' => 'tr#' . $user->id));
         return json_encode($data);
     }
     return Redirect::to(ADM_URI . '/users')->with($this->data);
 }
Example #6
0
 public function post_pwreset()
 {
     $rules = array('email' => 'required|email|account_exists');
     $messages = array('account_exists' => Lang::line('registration::lang.This email was not found.')->get(APP_LANG));
     $account = null;
     Validator::register('account_exists', function ($attribute, $value, $parameters) use(&$account) {
         $account = Users\Model\User::where('email', '=', Input::get('email'))->first();
         if (isset($account) and !empty($account)) {
             return true;
         }
         return false;
     });
     $validation = Validator::make(Input::all(), $rules, $messages);
     if ($validation->passes()) {
         $pwreset_record = new Registration\Model\Code();
         $pwreset_record->user_id = $account->id;
         $pwreset_record->code = Mwi_Core::keygen();
         $pwreset_record->save();
         // send password reset email
         // new xblade to parse the email template
         $xblade = new Xblade();
         $xblade->scopeGlue(':');
         // data to be passed to email template
         $data['user'] = $account;
         $data['forgotten_password_code'] = $pwreset_record->code;
         $data['url']['base'] = URL::base();
         $data['settings']['site_name'] = Config::get('settings::core.site_name');
         $data['request']['ip'] = Request::ip();
         $data['request']['user_agent'] = implode(', ', Request::header('user-agent'));
         $data['request']['languages'] = implode(', ', Request::languages());
         // get email template based on settings
         $email_address = Config::get('settings::core.server_email');
         $template_id = Config::get('settings::core.registration_pwreset_email_template');
         $email_data = Email\Model\Template::find($template_id);
         // send email to user
         Email\Message::to($account->email)->from($email_address)->subject($xblade->parse($email_data->subject, $data))->body($xblade->parse($email_data->body, $data))->html($email_data->type)->send();
         $this->data['message'] = __('registration::lang.An email was sent to you with instructions to reset your password')->get(APP_LANG);
         $this->data['message_type'] = 'success';
         return Redirect::to('page/home')->with($this->data);
     }
     return Redirect::back()->with_errors($validation)->with_input();
 }