function search($user_ = null)
 {
     $res = $_SESSION['service']->users_groups_list_partial($this->search_item, $this->search_fields, $user_);
     if (is_null($res) or is_null($res['data'])) {
         return array();
     }
     $groups = array();
     foreach ($res['data'] as $item_id => $item) {
         $group = new UsersGroup($item);
         if (!$group->is_valid()) {
             continue;
         }
         $groups[] = $group;
     }
     uasort($groups, "usergroup_cmp");
     $this->partial_result = $res['partial'];
     $this->result = $groups;
     return $this->result;
 }
 public function usersLogin()
 {
     Logger::debug('main', 'UsersGroup_dynamic::usersLogin');
     $static = parent::usersLogin();
     $ls = Abstract_Liaison_dynamic::load('UsersGroup', NULL, $this->getUniqueID());
     $dynamic = array();
     if (is_array($ls)) {
         foreach ($ls as $l) {
             $dynamic[] = $l->element;
         }
     }
     return array_unique(array_merge($static, $dynamic));
 }
 public function users_group_info($id_)
 {
     $args = func_get_args();
     // func_get_args(): Can't be used as a function parameter before PHP 5.3.0
     $res = $this->__call('users_group_info', $args);
     if ($res === null) {
         return null;
     }
     $group = new UsersGroup($res);
     if (!$group->is_valid()) {
         return null;
     }
     return $group;
 }
Example #4
0
 public function postEdit($id = null)
 {
     if (empty($id) || !is_numeric($id)) {
         redirect();
     }
     $user = User::findOrNew($id);
     if (empty($user->id)) {
         redirect();
     }
     $confirm = $this->input->post('confirm');
     $form = $this->input->post('form');
     $errors = [];
     if (!empty($confirm) && $confirm == 'ok') {
         $validator = new \Wasp\Validator($form, $this->validation);
         if (!$validator->checkAll()) {
             $errors = $validator->getMessages();
         }
         if (array_count($errors) == 0) {
             $current_user = $this->auth->getAuthUser();
             $group_level = $this->users->getGroupLevel($form['group_id']);
             $user_data = ['birthday' => wasp_date_format($form['birthday'], 'Y-m-d')];
             if ($this->users->groupIdExists($form['group_id']) && ($group_level < $current_user->group->level || $this->auth->is_root())) {
                 if ($user->id != $this->auth->getAuthUserId()) {
                     $user_data['group_id'] = intval($form['group_id']);
                     $user_data['blocked'] = intval($form['blocked']);
                 }
             }
             if ($user->id == $current_user->id || $this->auth->isAdmin()) {
                 foreach ($form as $key => $val) {
                     if (!array_key_isset($key, $user_data)) {
                         $user_data[$key] = $val;
                     }
                 }
             }
             $this->users->update($user_data);
             redirect(['controller' => 'users', 'method' => 'edit', 'id' => $id]);
         }
     }
     $this->layout->useThemeCss('datepicker.css')->useThemeJs('bootstrap-datepicker.js', false);
     return $this->ui->assign('errors', $errors)->assign('user', $user)->assign('groups', UsersGroup::get())->fetch('users/edit');
 }
Example #5
0
function do_validate()
{
    if ($_SESSION['wizard']['use_users'] == 'users') {
        if (!checkAuthorization('manageUsersGroups')) {
            redirect();
        }
        $g = new UsersGroup(array('id' => NULL, 'name' => $_SESSION['wizard']['user_group_name'], 'description' => $_SESSION['wizard']['user_group_description'], 'published' => 1));
        $res = $_SESSION['service']->users_group_add($g->getAttribute('name'), $g->getAttribute('description'));
        if (is_null($res)) {
            popup_error(_('Cannot create User Group'));
        }
        $g->id = $res;
        $g->setAttribute('id', $res);
        $users = $_SESSION['wizard']['users'];
        foreach ($users as $user) {
            $_SESSION['service']->users_group_add_user($user, $g->id);
        }
        $usergroups = array($g->id);
    } else {
        $usergroups = $_SESSION['wizard']['usergroups'];
    }
    if ($_SESSION['wizard']['use_apps'] == 'apps') {
        if (!checkAuthorization('manageApplicationsGroups')) {
            redirect();
        }
        $g = new ApplicationsGroup(array('id' => NULL, 'name' => $_SESSION['wizard']['application_group_name'], 'description' => $_SESSION['wizard']['application_group_description'], 'published' => 1));
        $res = $_SESSION['service']->applications_group_add($g->getAttribute('name'), $g->getAttribute('description'));
        if (!$res) {
            popup_error(_('Cannot create Application Group'));
        }
        $g->id = $res;
        $g->setAttribute('id', $res);
        $apps = $_SESSION['wizard']['apps'];
        foreach ($apps as $app) {
            $ret = $_SESSION['service']->applications_group_add_application($app, $g->id);
        }
        $appgroups = array($g->id);
    } else {
        $appgroups = $_SESSION['wizard']['appgroups'];
    }
    foreach ($usergroups as $usergroup) {
        foreach ($appgroups as $appgroup) {
            $_SESSION['service']->publication_add($usergroup, $appgroup);
        }
    }
    if (isset($_SESSION['wizard'])) {
    }
    unset($_SESSION['wizard']);
    redirect('publications.php');
    die;
}
Example #6
0
 public function getCurrentGroup()
 {
     $criteria = new CDbCriteria();
     $criteria->with = array('group');
     $criteria->condition = 'group.status = 1 AND t.user_id = ' . $this->id;
     $group = UsersGroup::model()->find($criteria);
     if ($group != null) {
         return $group->group_id;
     }
     return null;
 }