} } $extra['groups'] = $_groups; } } $user_roles = array(); $role = new Roles(); $_extra = serialize(array('user' => true, 'network' => true, 'groups' => array())); if (!empty($role_extra[$role_id])) { $_extra = serialize($role_extra[$role_id]); } else { if ($group_id) { $_extra = array('user' => false, 'network' => false, 'groups' => array($group_id)); $_extra = serialize($_extra); } } $user_roles[] = array('role_id' => $role_id, 'extra' => $_extra); if ($_POST['roles_action'] == 'delete') { $role->delete_user_roles($uid, $user_roles, $group_id); } else { $role->assign_role_to_user($user_roles, $uid); } $names = array(); $r_params = $group_id ? array('type' => 'group', 'gid' => $group_id) : null; $saved_roles = Roles::get_user_roles($uid, DB_FETCHMODE_OBJECT, $r_params); foreach ($saved_roles as $s_role) { $names[] = Roles::get_role_name($s_role->role_id); } $msg = implode("<br />", $names); echo $msg; }
/** * let the user leave network * @access public * @param id of the network,uid of user * @return flag for joining request moderated or success message */ static function leave($network_id, $uid) { Logger::log("Enter: static function Network leave"); // if (Network::is_mother_network($network_id)) { // throw new PAException(OPERATION_NOT_PERMITTED, "You cant delete mother network."); // } if (!Network::member_exists($network_id, $uid)) { throw new PAException(OPERATION_NOT_PERMITTED, "You are not member of this network."); } $user_type = Network::get_user_type($network_id, $uid); if ($user_type == NETWORK_OWNER) { throw new PAException(OPERATION_NOT_PERMITTED, "You cant leave your own network!!."); } $res = Dal::query("DELETE FROM {networks_users} WHERE network_id = ? AND user_id = ? ", array($network_id, $uid)); // delete all user roles for this network Roles::delete_user_roles($uid, -1); // -1 means: all user roles will be deleted // Update cached member count Network::update_network_member_count($network_id); Logger::log("Exit: static function Network leave"); return TRUE; }
public static function leave_all_groups($user_id) { Logger::log("Enter: Group::leave_all_groups() | Args: \$user_id = {$user_id}"); $res = Dal::query("DELETE FROM {groups_users} WHERE user_id = ?", array($user_id)); $role_info = array(array('role_id' => null)); // this means - delete all roles for this group $user_groups = Group::get_user_groups($user_id); foreach ($user_groups as $grp) { Roles::delete_user_roles($user_id, $role_info, $grp['gid']); } Logger::log("Exit: Group::leave_all_groups()"); return TRUE; }