function threadlog_bit($uid) { global $db, $mybb, $cache; $member = new GroupMember($mybb, $db, $cache); if ($member->initialize($uid)) { $user = $member->get_info(); return "Viewing <a href='misc.php?action=threadlog&uid=" . $uid . "'>" . $user['username'] . "'s Threadlog</a>"; } else { return "Viewing <a href='misc.php?action=threadlog'>Threadlog</a>"; } }
/** * Sets the user options values in ACP on submit */ function admin_user_commit() { global $mybb, $user, $db, $cache; // Save new group rank if ($mybb->settings['rpgsuite_groupranks']) { $rankid = (int) $mybb->input['rank_uid' . $user['uid']]; $groupuser = new GroupMember($mybb, $db, $cache); $groupuser->initialize($user['uid']); $groupuser->update_rank($rankid); } }
public function checkEmail($attribute) { $value = $this->{$attribute}; $user = Users::model()->findByAttributes(['email' => $value]); /*if (!$user) { $this->addError($attribute, 'В системе нет пользователя с данной почтой'); return false; }*/ if ($user) { $group_member = GroupMember::model()->findByAttributes(['group_id' => $this->group_id, 'user_id' => $user->id]); if ($group_member) { $this->addError($attribute, 'Данный пользователь уже член вашей группы'); return false; } $group = Group::model()->findByPk($this->group_id); if ($group->owner_id == $user->id) { $this->addError($attribute, 'Администратор группы не может быть членом группы'); return false; } } $active_invites = GroupInvite::model()->findByAttributes(['group_id' => $this->group_id, 'email' => $value, 'status' => self::INVITE_CREATE]); if ($active_invites) { $this->addError($attribute, 'Данный пользователь уже имеет приглашение'); } }
/** Add a new member to the group */ public function add_member($uid) { // Set display group $member = new GroupMember($this->mybb, $this->db, $this->cache); if ($member->initialize($uid)) { $user = $member->get_info(); // If they are a pm of their old group, they won't be now! $this->demote_member($uid); // If they are in a group currently, remove it from additional leave_usergroup($user['uid'], $user['displaygroup']); // add new to additional groups join_usergroup($user['uid'], $this->info['gid']); $updatearray = array('displaygroup' => $this->info['gid'], 'group_dateline' => time()); $member->update_member($updatearray); $member->update_rank($this->info['defaultrank']); } }
public function actionInvite($invite_id, $accept) { $invite = GroupInvite::model()->findByPk($invite_id); if (!$invite) { throw new CHttpException(404); } $invite->setAttribute('status', $accept == 1 ? GroupInvite::INVITE_ACCEPT : GroupInvite::INVITE_CANCELED); if ($accept == 1) { $group_member = new GroupMember(); $group_member->setAttributes(['group_id' => $invite->group_id, 'user_id' => Yii::app()->user->getId()]); $group_member->save(); } if ($invite->save()) { Yii::app()->user->setFlash('success', 'Приглашение ' . ($accept == 1 ? 'принято' : 'отклонено')); } else { Yii::app()->user->setFlash('error', 'Произошла ошибка'); } $this->redirect(['notifications']); }
public function membersOperate(Model $Model, $ownerId = null) { if (isset($Model->data[$Model->alias]['user_id']) && !empty($Model->data[$Model->alias]['user_id'])) { $ownerId = $Model->data[$Model->alias]['user_id']; } if (empty($ownerId)) { return false; } $remoteModel = $this->settings[$Model->alias]['remoteModel']; App::import('Model', $remoteModel); $remoteModel = new $remoteModel(); $limits = $remoteModel->findByOwnerId($ownerId); App::import('Model', 'Group'); App::import('Model', 'GroupMember'); $groupModel = new Group(); $groupMemberModel = new GroupMember(); $groupModel->recursive = -1; $groups = $groupModel->findAllByOwnerId($ownerId); if ($limits['GroupLimit']['members_limit'] == 0 && $limits['GroupLimit']['members_used'] > 0) { //verify all groups for limit overload foreach ($groups as $group) { $groupMemberModel->recursive = -1; $groupMembers = $groupMemberModel->find('all', array('conditions' => array('GroupMember.group_id' => $group['Group']['id'], 'GroupMember.approved' => true, 'GroupMember.is_deleted' => false), 'order' => array('GroupMember.approve_date' => 'ASC'))); $groupMembers = array_slice($groupMembers, 6); if (count($groupMembers) > 0) { foreach ($groupMembers as $key => $member) { $groupMembers[$key]['GroupMember'] = Hash::merge($member['GroupMember'], array('approved' => false, 'is_invited' => false, 'approve_date' => '0000-00-00 00:00:00')); } $groupMemberModel->saveMany($groupMembers, array('callbacks' => true, 'counterCache' => true)); } } } elseif ($limits['GroupLimit']['members_limit'] < $limits['GroupLimit']['members_used']) { //we need to decrease group members by some algorythm } //debug($groups); }
/** * Create * @param integer $groupId * @param integer $courseId */ public function actionCreate($groupId, $courseId) { $model = new GroupCourse(); $course = Course::model()->findByPk($courseId); $group = Group::model()->findByPk($groupId); // $member = $group->findMember(array('userId'=>Yii::app()->user->id)); $member = GroupMember::model()->findByAttributes(array('groupId' => $groupId, 'userId' => Yii::app()->user->id)); if ($course && $member && $member->inRoles(array('admin', 'superAdmin'))) { $model->groupId = $groupId; $model->courseId = $courseId; $model->userId = Yii::app()->user->id; $model->addTime = time(); echo $model->save(); Yii::app()->user->setFlash('success', '收藏成功!'); } echo false; }
/** * 获取本member中角色权限不比$userId低的角色,如果操作者不是同一组织的成员,则返回本成员所有roles * Enter description here ... * @param unknown_type $userId */ public function getNoLowerRoles() { if (Yii::app()->user->checkAccess('admin')) { return array(); } $userId = Yii::app()->user->id; // $operateMember = Member::model()->findByAttributes(array('userId'=>$userId,'memberableEntityId'=>$this->memberableEntityId)); $operateMember = GroupMember::model()->findByAttributes(array('userId' => $userId, 'groupId' => $this->groupId)); $objectMember = $this->isNewRecord ? $this : Member::model()->findByPk($this->id); if ($operateMember) { $result = array(); if ($objectMember->inRoles(array('superAdmin'))) { $result[] = 'superAdmin'; } //if($operateMember->inRoles(array('superAdmin'))) return array('superAdmin'); if ($operateMember->inRoles(array('admin'))) { if ($objectMember->inRoles(array('admin'))) { $result[] = 'admin'; } } return $result; } return $objectMember->arrRoles; }
function queue_details() { global $mybb, $db, $cache, $templates, $approval_page, $theme, $lang, $header, $headerinclude, $footer, $parser; if ($mybb->settings['rpgsuite_approval']) { $currentuser = new GroupMember($mybb, $db, $cache, $mybb->user); if ($currentuser->is_admin() && $mybb->input['action'] == 'activationqueue') { if ($mybb->request_method == "post") { $userid = (int) $mybb->input['userid']; $username = $db->escape_string($mybb->input['username']); $type = $mybb->input['type']; if (isset($mybb->input['approve'])) { approve($userid, $username, $type); } else { if (isset($mybb->input['deny'])) { deny($userid, $username); } } } add_breadcrumb('Approve New Members'); $rpgsuite = new RPGSuite($mybb, $db, $cache); $accounts = $rpgsuite->get_awaiting_approval(); foreach ($accounts as $user) { eval("\$userlist .= \"" . $templates->get("rpgapprove_user") . "\";"); } eval("\$approval_page = \"" . $templates->get("rpgapprove_page") . "\";"); output_page($approval_page); exit; } } }
public function addMember($userId, $role = null) { $groupMember = $this->findMemberByUserId($userId); if (!$groupMember) { if (is_null($role)) { throw new \Exception("You must provide a role if adding a new member"); } if (!isset($this->id) || empty($this->id)) { throw new \Exception("The group must have a ID set in order to add a member"); } $groupMember = new GroupMember(); $groupMember->user_id = $userId; $groupMember->role = Group::ROLE_OWNER; $groupMember->group_id = $this->id; } else { if (!is_null($role)) { $groupMember->role = $role; } } $groupMember->save(); }
public function actionInvite($hash, $type = 1) { if (!in_array($type, [1, 2])) { throw new CHttpException(404, 'Данный тип не существует'); } if ($type == 1) { $invite = GroupInvite::model()->with('group')->findByAttributes(['status' => GroupInvite::INVITE_CREATE, 'hash' => $hash]); } elseif ($type == 2) { $invite = Invite::model()->findByAttributes(['status' => Invite::INVITE_ACCEPT, 'hash' => $hash]); } if (!isset($invite)) { throw new CHttpException(404, 'Данное приглашение не найдено или было отменено'); } $model = new Users(); if (Yii::app()->request->isPostRequest) { $user = Yii::app()->request->getParam('Users'); $model->setAttributes($user); $model->setAttributes(['email' => $invite->email, 'password' => md5($user['password'])]); if ($model->save()) { Yii::app()->authManager->assign('user', $model->id); $user_identity = new UserIdentity($model->username, $model->password); $user_identity->authenticate(); Yii::app()->user->login($user_identity, 60 * 60 * 24 * 7); switch ($type) { case 1: $invite->setAttribute('status', GroupInvite::INVITE_ACCEPT); $invite->save(); $group_member = new GroupMember(); $group_member->setAttributes(['group_id' => $invite->group_id, 'user_id' => $model->id]); $group_member->save(); break; case 2: $invite->setAttribute('status', Invite::INVITE_USED); $invite->save(false); $group = new Group(); $group->setAttributes(['number' => $invite->group_number, 'owner_id' => $model->id]); $group->save(); } $this->redirect(['site/dashboard']); } } $this->render('invite', ['model' => $model]); }
public function actionDeleteModerator($member_id, $confirm = 0) { $model = GroupMember::model()->findByPk($member_id); if (!$model) { throw new CHttpException(404, 'Элемент не найден'); } if ($confirm) { if ($model->delete()) { Yii::app()->user->setFlash('success', 'Модератор успешно удален'); } else { Yii::app()->user->setFlash('error', 'Ошибка удаления модератора'); } $this->redirect(['moderators', 'id' => self::$group->number]); } $this->render('moderator/delete', ['model' => $model]); }
/** * 创建小组页面和处理 */ public function actionCreate() { $model = new Group(); if (isset($_POST['Group'])) { $model->attributes = $_POST['Group']; $model->addTime = time(); $model->userId = Yii::app()->user->id; $model->status = "apply"; if ($model->save()) { // $model->addMember(Yii::app()->user->id,array('superAdmin')); $member = new GroupMember(); $member->groupId = $model->id; $member->userId = Yii::app()->user->id; $member->setArrRoles(array('superAdmin')); $member->save(); $admins = UserInfo::getAllAdmins(); foreach ($admins as $user) { Notice::send($user->id, 'group_apply', array('groupId' => $model->getPrimaryKey())); } Yii::app()->user->setFlash('success', '申请已提交,请继续完善小组资料'); $this->redirect(array('view', 'id' => $model->id)); } } $user = UserInfo::model()->findByPk(Yii::app()->user->id); $this->render('create', array('model' => $model, 'user' => $user)); }
public function getIndex() { if (!Auth::check()) { return Redirect::to('user/login')->with('error', 'Please log in to view groups'); } $userGroups = GroupMember::where('user_id', '=', Auth::user()->id)->get(); return View::make('groups.index', compact('userGroups')); }
public function actionMembers_manage($book_id) { $this->loadBook($book_id); if (!$this->book->can("membership")) { throw new CHttpException(403, "Вы не можете управлять группой перевода, это прерогатива " . ($this->book->ac_membership == "m" ? "модераторов" : "создателя перевода")); } $back = $this->book->getUrl("members") . "?User_page=" . intval($_POST["User_page"]); if (count($_POST["id"]) == 0) { $this->redirect($back); } /** var integer $status - какой статус ставим / удаляем */ $status = (int) $_POST["status"]; // Нельзя удалять людей из открытого перевода и назначать модераторов, если ты не владелец if ($status == GroupMember::CONTRIBUTOR and $this->book->facecontrol == Book::FC_OPEN or $status == GroupMember::MODERATOR and !$this->book->can("owner")) { $this->redirect($back); } // Загружаем всех, кто был в таблице /** var array $ids - ID всех пользователей, которые были в таблице на странице */ /** var GroupMember[] $members - члены */ $ids = array_filter(array_keys($_POST["id"]), function ($n) { return is_numeric($n); }); if (count($ids) == 0) { $this->redirect($back); } $members = GroupMember::model()->with("user")->book($this->book->id)->findAllByAttributes(array("user_id" => $ids)); $update = array(); $delete = array(); foreach ($members as $member) { // С создателем перевода никаких действий делать нельзя, а модераторов может мучить только создатель if ($member->user_id == $this->book->owner_id) { continue; } if ($member->status == GroupMember::MODERATOR and !$this->book->can("owner")) { continue; } $set = (int) $_POST["id"][$member->user_id]; if ($status == GroupMember::CONTRIBUTOR) { // Выгнать из группы // Пустые чекбоксы пропускаем if ($set == 0) { continue; } // Если это уже удалённый пользователь, то не пинаем труп. if ($member->status == GroupMember::CONTRIBUTOR) { continue; } // Если у члена группы были переводы, то ставим ему status = 0, если не было - удаляем нахуй if ($member->n_trs == 0) { $delete[] = $member->user_id; } else { $update[GroupMember::CONTRIBUTOR][] = $member->user_id; } $member->user->Notify(Notice::EXPELLED, $this->book); } elseif ($status == GroupMember::BANNED or $status == GroupMember::MODERATOR) { // Забанить или сделать модератором // Нельзя сделать модератором вышедшего члена // -- А с какого это хуя нельзя-то? При facecontrol == FC_OPEN - можно. // if($status == GroupMember::MODERATOR and $member->status == GroupMember::CONTRIBUTOR) continue; // Весёлая карусель! Баним незабаненных или коронуем пастухов. if ($set and $member->status != $status) { $update[$status][] = $member->user_id; if ($status == GroupMember::MODERATOR) { $member->user->Notify(Notice::CROWNED, $this->book); } elseif ($status == GroupMember::BANNED) { $member->user->Notify(Notice::BANNED, $this->book); } } // Разбаниваем забаненных, а королей отправляем пасти свиней. if (!$set and $member->status == $status) { $update[$this->book->facecontrol == Book::FC_OPEN ? GroupMember::CONTRIBUTOR : GroupMember::MEMBER][] = $member->user_id; if ($status == GroupMember::MODERATOR) { $member->user->Notify(Notice::DEPOSED, $this->book); } elseif ($status == GroupMember::BANNED) { $member->user->Notify(Notice::UNBANNED, $this->book); } } } } if (count($delete) > 0) { Yii::app()->db->createCommand("DELETE FROM groups WHERE book_id = '{$this->book->id}' AND user_id IN(" . join(",", $delete) . ")")->execute(); } if (count($update) > 0) { foreach ($update as $k => $V) { Yii::app()->db->createCommand("UPDATE groups SET status = '{$k}' WHERE book_id = '{$this->book->id}' AND user_id IN(" . join(",", $V) . ")")->execute(); } } $this->redirect($back); }
/** * 获取成员数量,计入超级管理员 */ public function getMemberCount() { $result = GroupMember::model()->count("memberableEntityId=:entityId and (find_in_set('superAdmin',roles) or find_in_set('admin',roles) or find_in_set('member',roles))", array(':entityId' => $this->getOwner()->entityId)); return intval($result); }
/** * getValidSponsors. * * @todo I'm not sure what exactly this does at first glance */ public function getValidSponsors() { $collection = new Collection(); $groups = GroupMember::where('user_id', '=', $this->id)->whereIn('role', array(Group::ROLE_EDITOR, Group::ROLE_OWNER))->get(); foreach ($groups as $groupMember) { $collection->add($groupMember->group()->first()); } $users = UserMeta::where('user_id', '=', $this->id)->where('meta_key', '=', UserMeta::TYPE_INDEPENDENT_SPONSOR)->where('meta_value', '=', '1')->get(); foreach ($users as $userMeta) { $collection->add($userMeta->user()->first()); } return $collection; }
public function actionBooks($id) { $user = $this->loadUser($id); $orderOptions = array(1 => array("t.last_tr desc NULLS LAST", "По дате последнего перевода от {$user->login}"), 2 => array("t.n_trs desc NULLS LAST", "По количеству версий от {$user->login}"), 3 => array("CASE WHEN book.n_verses <> 0 THEN book.d_vars::float / book.n_verses::float ELSE null END DESC NULLS LAST", "По готовности перевода"), 4 => array("t.since DESC", "По дате вступления в перевод")); $statusOptions = array(0 => array("", "все", "не участвует ни в одном переводе"), 1 => array("t.status = 2", "там, где {$user->login} – модератор", "не модерирует ни один перевод"), 2 => array("book.owner_id = {$user->id}", "там, где {$user->login} – создатель", "не создал" . $user->sexy() . " ни одного проекта перевода")); $order = (int) $_GET["order"]; if (!isset($orderOptions[$order])) { $order = 1; } $status = (int) $_GET["status"]; if (!isset($statusOptions[$status])) { $status = 0; } $f = new GroupMember(); $f->user($user->id)->with("book"); $c = new CDbCriteria(); if ($order) { $c->order = $orderOptions[$order][0]; } if ($status) { $c->addCondition($statusOptions[$status][0]); } $groups_dp = new CActiveDataProvider($f, array("criteria" => $c, "pagination" => array("pageSize" => 30))); // $groups_dp->totalItemCount = Yii::app()->db->createCommand("SELECT COUNT(*) FROM groups WHERE user_id = :user_id")->queryScalar(array(":user_id" => $user->id)); $this->side_view = array("profile_side" => array("user" => $user, "userinfo" => $user->userinfo), "books_side" => array("orderOptions" => $orderOptions, "order" => $order, "statusOptions" => $statusOptions, "status" => $status)); $this->render("books", array("user" => $user, "groups_dp" => $groups_dp, "order" => $order, "statusOptions" => $statusOptions, "status" => $status)); }
public function loadMember($uid) { $gid = $this->id; if (empty($uid)) { $uid = Yii::app()->user->id; } $model = new GroupMember(); $criteria = new CDbCriteria(); $criteria->condition .= " 1 AND gid = :gid AND uid = :uid"; $criteria->params = array(':gid' => $gid, ':uid' => $uid); $member = $model->find($criteria); return $member; }
/** * Registration user */ public function actionRegistration() { $model = new RegistrationForm(); $profile = new Profile(); $profile->regMode = true; $org = new Organisation(); // ajax validator //if(isset($_POST['ajax']) && $_POST['ajax']==='registration-form') //{ // echo UActiveForm::validate(array($model,$profile)); // Yii::app()->end(); //} if (isset($_POST['ajax']) && $_POST['ajax'] === 'registration-form') { if ($_POST['RegistrationForm']['service'] == 2) { //////////////////////////////////////////////////////////////////////////////// //$name = trim($org->name); $name = trim($_POST['Organisation']['name']); $exOrgCount = Organisation::model()->count('name=:param_name', array(':param_name' => $name)); if ($exOrgCount > 0) { $org->validatorList->add(CValidator::createValidator('unique', $org, 'name', array('message' => Yii::t('app', 'Group Name already exists')))); } else { if (strlen($name) == 0) { $org->validatorList->add(CValidator::createValidator('required', $org, 'name', array('message' => Yii::t('app', 'Group Name canot be blank')))); } } //////////////////////////////////////////////////////////////////////////////// echo UActiveForm::validate(array($model, $profile, $org)); Yii::app()->end(); } else { echo UActiveForm::validate(array($model, $profile)); Yii::app()->end(); } } if (Yii::app()->user->id) { $this->redirect(Yii::app()->controller->module->profileUrl); } else { if (isset($_POST['RegistrationForm'])) { $model->attributes = $_POST['RegistrationForm']; $profile->attributes = isset($_POST['Profile']) ? $_POST['Profile'] : array(); $valid = $model->validate(); $valid = $profile->validate() && $valid; if ($_POST['RegistrationForm']['service'] == 2) { $org->name = trim($_POST['Organisation']['name']); $valid = $org->validate() && $valid; } //if($model->validate()&&$profile->validate()) if ($valid) { $soucePassword = $model->password; $model->activkey = UserModule::encrypting(microtime() . $model->password); $model->password = UserModule::encrypting($model->password); $model->verifyPassword = UserModule::encrypting($model->verifyPassword); $model->superuser = 0; $model->status = Yii::app()->controller->module->activeAfterRegister ? User::STATUS_ACTIVE : User::STATUS_NOACTIVE; $orgDuplicateCheck = false; $flag = true; $role = 'Authenticated'; if ($model->service == 1) { $orgDuplicateCheck = true; $role = 'Individual'; } else { if ($model->service == 2 && isset($_POST['Organisation']['name'])) { $org->name = trim($_POST['Organisation']['name']); $flag = Organisation::model()->exists('name=:param_name_check', array(':param_name_check' => $org->name)); if (!$flag) { $orgDuplicateCheck = true; } $role = 'Org_Admin'; } else { //$org->validatorList->add(CValidator::createValidator('unique', $org, 'name', array('message'=>Yii::t('app','Group Name Already Exists')))); $org->validate(); Yii::app()->user->setFlash('registration', UserModule::t("Group Name already exists")); } } if ($orgDuplicateCheck) { if ($model->save()) { $profile->user_id = $model->id; $profile->firstname = $model->firstname; $profile->lastname = $model->lastname; $profile->save(); $this->assignRole($model->id, $role); //If Service=2 ~ Organisation Save New (Non-Existent) Organisation if (!$flag) { $org->created_by = $model->id; $org->type = 'Other'; //$org->timestamp_create = date('Y-m-d H:i:s'); if ($org->save()) { $model->organisation_id = $org->id; $model->organisation_administrator = 1; $model->save(false); try { //Create Organisation Group $group = new Group(); $group->group_name = $org->name; $group->parent_group_id = 0; $group->organisation_id = $org->id; $group->timestamp_created = date('Y-m-d H:i":'); $group->save(false); $groupMember = new GroupMember(); $groupMember->group_id = $group->group_id; $groupMember->user_id = $model->id; $groupMember->manager_flag = 1; //$groupMember->created_by = 0; //$groupMember->timestamp_created = date('Y-m-d H:i:s'); $groupMember->save(false); } catch (Exception $ex) { Yii::log($ex->getMessage(), 'error', 'Custom'); } } else { Yii::app()->user->setFlash('registration', UserModule::t("Oop! Soemthing Went Wrong")); } } if (Yii::app()->controller->module->sendActivationMail) { $activation_url = $this->createAbsoluteUrl('/user/activation/activation', array("activkey" => $model->activkey, "email" => $model->email)); UserModule::sendMail($model->email, UserModule::t("You registered from {site_name}", array('{site_name}' => Yii::app()->name)), UserModule::t("Please activate your account by going to {activation_url}", array('{activation_url}' => $activation_url))); } if ((Yii::app()->controller->module->loginNotActiv || Yii::app()->controller->module->activeAfterRegister && Yii::app()->controller->module->sendActivationMail == false) && Yii::app()->controller->module->autoLogin) { $identity = new UserIdentity($model->username, $soucePassword); $identity->authenticate(); Yii::app()->user->login($identity, 0); $this->redirect(Yii::app()->controller->module->returnUrl); } else { if (!Yii::app()->controller->module->activeAfterRegister && !Yii::app()->controller->module->sendActivationMail) { Yii::app()->user->setFlash('registration', UserModule::t("Thank you for your registration. Contact Admin to activate your account.")); } elseif (Yii::app()->controller->module->activeAfterRegister && Yii::app()->controller->module->sendActivationMail == false) { Yii::app()->user->setFlash('registration', UserModule::t("Thank you for your registration. Please {{login}}.", array('{{login}}' => CHtml::link(UserModule::t('Login'), Yii::app()->controller->module->loginUrl)))); } elseif (Yii::app()->controller->module->loginNotActiv) { Yii::app()->user->setFlash('registration', UserModule::t("Thank you for your registration. Please check your email to login.")); } else { //Yii::app()->user->setFlash('registration',UserModule::t("Thank you for your registration. Please check your email.")); Yii::app()->user->setFlash('registration', UserModule::t("Thank you for your registration. Please check your spam/junk folder if you email is not in inbox.")); } $this->refresh(); } } } } else { $profile->validate(); } } $this->render('/user/registration', array('model' => $model, 'profile' => $profile, 'org' => $org)); } }
/** * 查看一个帖子 * @param integer $id 帖子ID */ public function actionView($id) { $post = $this->loadModel($id); //$group = $post->postableEntity->getModel(); $group = $post->group; $member = GroupMember::model()->findByAttributes(array('groupId' => $id, 'userId' => Yii::app()->user->id)); if (!$member) { $member = new GroupMember(); } $followDataProvider = $post->getFollowDataProvider(); $this->render('view', array('post' => $post, 'group' => $group, 'member' => $member, 'followDataProvider' => $followDataProvider)); }
/** * 检查权限 */ public function allowOnlyAdmin() { if (Yii::app()->user->checkAccess('admin')) { return true; } $group = $this->loadModel($_GET['id']); // $member = $group->findMember(array('userId'=>Yii::app()->user->id)); $member = GroupMember::model()->findByAttributes(array('groupId' => $group->id, 'userId' => Yii::app()->user->id)); if ($member && $member->inRoles(array('admin', 'superAdmin'))) { return true; } return false; }
/** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. */ public function loadModel() { if ($this->_model === null) { if (isset($_GET['id'])) { $this->_model = GroupMember::model()->findbyPk($_GET['id']); } if ($this->_model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } } return $this->_model; }