예제 #1
0
 /**
  * Изменить информацию о группах и правах пользователя
  *
  * @param   integer     $uid                ID пользователя
  * @param   array       $groups             Информация о группах
  * @param   array       $rights_allow       Информация о разрешенных правах
  */
 function updateUser($uid, $groups, $rights_allow)
 {
     global $DB;
     $user_groups_rights = array();
     if (!is_array($rights_allow)) {
         $rights_allow = array();
     }
     if (!is_array($rights_disallow)) {
         $rights_disallow = array();
     }
     $sql = "DELETE FROM permissions_groups_users WHERE user_id=?i";
     $DB->query($sql, $uid);
     $sql = "DELETE FROM permissions_rights_users WHERE user_id=?i";
     $DB->query($sql, $uid);
     if (is_array($groups)) {
         $sql = "";
         if ($groups) {
             foreach ($groups as $group) {
                 $g_rights = permissions::getGroupInfo($group);
                 if ($g_rights['rights']) {
                     foreach ($g_rights['rights'] as $g_right) {
                         if (!in_array($g_right, $user_groups_rights)) {
                             array_push($user_groups_rights, $g_right);
                         }
                     }
                 }
                 $sql .= "INSERT INTO permissions_groups_users(group_id,user_id) VALUES({$group},{$uid});\n ";
             }
             $DB->query($sql);
             $DB->query("UPDATE users SET is_chuck = true WHERE uid = {$uid}");
         }
     }
     $tr_allow = array_diff($rights_allow, $user_groups_rights);
     $tr_disallow = array_diff($user_groups_rights, $rights_allow);
     $rights_allow = $tr_allow;
     $rights_disallow = $tr_disallow;
     if (is_array($rights_allow)) {
         $sql = "";
         if ($rights_allow) {
             foreach ($rights_allow as $right) {
                 $sql .= "INSERT INTO permissions_rights_users(right_id,user_id,is_allow) VALUES({$right},{$uid},'t');\n ";
             }
             $DB->query($sql);
         }
     }
     if (is_array($rights_disallow)) {
         $sql = "";
         if ($rights_disallow) {
             foreach ($rights_disallow as $right) {
                 $sql .= "INSERT INTO permissions_rights_users(right_id,user_id,is_allow) VALUES({$right},{$uid},'f');\n ";
             }
             $DB->query($sql);
         }
     }
 }
예제 #2
0
 $user_id = __paramInit('int', 'uid', 'uid');
 require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
 $user = new users();
 $user->GetUserByUID($user_id);
 $groups = permissions::getAllGroups();
 foreach ($groups as $k => $group) {
     $g_rights = permissions::getGroupInfo($group['id']);
     $groups[$k]['rights'] = $g_rights['rights'];
 }
 $rights = permissions::getAllRights();
 $user_groups_data = permissions::getUserGroups($user_id);
 $user_groups = array();
 $user_groups_rights = array();
 foreach ($user_groups_data as $user_group) {
     array_push($user_groups, $user_group['id']);
     $g_rights = permissions::getGroupInfo($user_group['id']);
     if ($g_rights['rights']) {
         foreach ($g_rights['rights'] as $g_right) {
             if (!in_array($g_right, $user_groups_rights)) {
                 array_push($user_groups_rights, $g_right);
             }
         }
     }
 }
 $user_rights_data = permissions::getUserExtraRights($user_id);
 $user_rights_allow = array();
 $user_rights_disallow = array();
 foreach ($user_rights_data as $user_right) {
     if ($user_right['is_allow'] == 't') {
         array_push($user_rights_allow, $user_right['id']);
     } else {