public function actionNew() { $request = Yii::$app->request; $user = new User(); if ($request->isPost) { if ($user->load($request->post()) && $user->save()) { $role = (int) $request->post('role'); if (Group::isValidGroup($role)) { $groupMember = new GroupMember(); $groupMember->user_id = $user->id; $groupMember->group_id = $role; if ($groupMember->save()) { return "<a class='auto-close'></a>"; } } else { throw new CHttpException(404, 'Не съществува такава група!'); } } else { return $this->renderPartial('new', ['user' => $user]); } } return $this->renderPartial('new', ['user' => $user]); }
/** * 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 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(); }
/** * @return \yii\db\ActiveQuery */ public function getGroupMembers() { return $this->hasMany(GroupMember::className(), ['group_id' => 'id']); }
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')); }
/** * @return \yii\db\ActiveQuery */ public function getGroupMembers() { return $this->hasOne(GroupMember::className(), ['user_id' => 'id']); }