public function act_add_user()
 {
     // var_dump($_POST);
     include_once APPROOT . 'inc/lib_form.inc';
     include_once APPROOT . 'inc/lib_form_util.inc';
     include_once APPROOT . 'inc/lib_validate.inc';
     include_once APPROOT . 'inc//security/lib_auth.inc';
     include_once 'lib_user.inc';
     $this->user_form = user_get_form();
     if (isset($_POST['save'])) {
         $valide = true;
         $username = $_POST['username'];
         $password1 = $_POST['password1'];
         $password2 = $_POST['password2'];
         $firstName = $_POST['first_name'];
         $lastName = $_POST['last_name'];
         $organization = $_POST['organization'];
         $designation = $_POST['designation'];
         $email = $_POST['email'];
         $address = $_POST['address'];
         $role = $_POST['role'];
         $status = $_POST['status'];
         $locale = $_POST['locale'];
         $user_form = $this->user_form;
         if (trim($username) == '') {
             $user_form['username']['extra_opts'] = array();
             $user_form['username']['extra_opts']['error'] = array();
             $user_form['username']['extra_opts']['error'][] = _t("USERNAME_CANNOT_BE_EMPTY");
             $user_form['username']['extra_opts']['required'][] = true;
             $valide = false;
         }
         if (UserHelper::isUser($username)) {
             $user_form['username']['extra_opts'] = array();
             $user_form['username']['extra_opts']['error'] = array();
             $user_form['username']['extra_opts']['error'][] = _t("USERNAME_ALREADY_EXISTS__USE_A_DIFFERENT_USERNAME");
             $user_form['username']['extra_opts']['required'][] = true;
             $valide = false;
         }
         if (trim($password1) == '') {
             $user_form['password1']['extra_opts'] = array();
             $user_form['password1']['extra_opts']['error'] = array();
             $user_form['password1']['extra_opts']['error'][] = _t("PASSWORD_REQUIRED");
             $user_form['password1']['extra_opts']['required'][] = true;
             $valide = false;
         }
         if (trim($password2) == '') {
             $user_form['password2']['extra_opts'] = array();
             $user_form['password2']['extra_opts']['error'] = array();
             $user_form['password2']['extra_opts']['error'][] = _t("PASSWORD_REQUIRED");
             $user_form['password2']['extra_opts']['required'][] = true;
             $valide = false;
         }
         if ($password1 != $password2) {
             $user_form['password2']['extra_opts'] = array();
             $user_form['password2']['extra_opts']['error'] = array();
             $user_form['password2']['extra_opts']['error'][] = _t("PASSWORD_MISMATCH");
             $user_form['password2']['extra_opts']['required'][] = true;
             $valide = false;
         }
         if (true) {
             //password match policy
         }
         if ($email != '' && !shn_valid_email($email)) {
             //email not valide
             $user_form['email']['extra_opts'] = array();
             $user_form['email']['extra_opts']['error'] = array();
             $user_form['email']['extra_opts']['error'][] = _t("INVALID_EMAIL_ADDRESS");
             $valide = false;
         }
         $status = $status == 'active' || $status == 'disable' ? $status : 'disable';
         $this->user_form = $user_form;
         if ($valide == true) {
             $userProfile = new UserProfile();
             $userProfile->username = $username;
             $userProfile->first_name = $firstName;
             $userProfile->last_name = $lastName;
             $userProfile->organization = $organization;
             $userProfile->designation = $designation;
             $userProfile->email = $email;
             $userProfile->address = $address;
             //$userProfile->Save();
             $userConfig = array();
             $userConfig['locale'] = $locale;
             shn_auth_add_user($username, $password1, $role, $userProfile, $status, $userConfig);
             set_redirect_header('admin', 'user_management');
         }
     }
 }
 public function act_permissions()
 {
     $gacl_api = acl_get_gacl_api();
     $this->roles = acl_get_roles();
     if (isset($_POST['update'])) {
         foreach ($this->roles as $role_val => $role_name) {
             if ($role_val == 'admin') {
                 continue;
             }
             $acl_id = $gacl_api->search_acl('access', 'access', FALSE, FALSE, $role_name, 'events', $this->event->event_record_number, FALSE, FALSE);
             if (isset($_POST['roles']) && in_array($role_val, $_POST['roles'])) {
                 if (count($acl_id) == 0) {
                     $aro_grp = $gacl_api->get_group_id($role_val, $role_name, 'ARO');
                     $return = $gacl_api->add_acl(array('access' => array('access')), null, array($aro_grp), array('events' => array($this->event->event_record_number)), null, 1);
                 }
             } else {
                 $gacl_api->del_acl($acl_id[0]);
             }
         }
         set_redirect_header('events', 'permissions');
     }
     if (isset($_POST['add_user']) && $_POST['add_user'] != '') {
         $username = $_POST['add_user'];
         if (UserHelper::isUser($username)) {
             $return = $gacl_api->add_acl(array('access' => array('access')), array("users" => array($username)), null, array('events' => array($this->event->event_record_number)), null, 1);
         } else {
             shnMessageQueue::addError(_t('USERID_DOES_NOT_EXISTS_'));
         }
     }
     if (isset($_POST['remove_user'])) {
         $acl_id = $gacl_api->search_acl('access', 'access', 'users', $_POST['remove_user'], FALSE, 'events', $this->event->event_record_number, FALSE, FALSE);
         if (isset($acl_id[0])) {
             $gacl_api->del_acl($acl_id[0]);
         }
     }
     //populate checkboxes
     $this->value = array();
     foreach ($this->roles as $role_val => $role_name) {
         $acl_id = $gacl_api->search_acl('access', 'access', FALSE, FALSE, $role_name, 'events', $this->event->event_record_number, FALSE, FALSE);
         if (count($acl_id) > 0) {
             $this->value[$role_val] = $role_val;
         }
     }
     //get users with permissions
     $this->users = acl_get_allowed_users($this->event->event_record_number);
 }