Since: 3.0.0
Author: Jack P.
Inheritance: extends Traq\Models\Model
コード例 #1
0
ファイル: Members.php プロジェクト: dasklney/traq
 /**
  * Remove project member.
  *
  * @param $id User ID
  *
  * @return \Avalon\Http\RedirectResponse|\Avalon\Http\Response
  */
 public function destroyAction($id)
 {
     $userRole = UserRole::select()->where('project_id = ?')->andWhere('user_id = ?')->setParameter(0, $this->currentProject['id'])->setParameter(1, $id)->fetch();
     if (!$userRole) {
         return $this->show404();
     } else {
         $userRole->delete();
         return $this->redirectTo('project_settings_members');
     }
 }
コード例 #2
0
ファイル: Members.php プロジェクト: nirix/traq
 /**
  * Remove project member.
  *
  * @param $id User ID
  *
  * @return \Avalon\Http\RedirectResponse|\Avalon\Http\Response
  */
 public function destroyAction($id)
 {
     $userRole = UserRole::select()->where('project_id = ?')->andWhere('user_id = ?')->setParameter(0, $this->currentProject['id'])->setParameter(1, $id)->fetch();
     if (!$userRole) {
         return $this->show404();
     }
     $userRole->delete();
     return $this->respondTo(function ($format) {
         if ($format == 'json') {
             return $this->jsonResponse(['deleted' => true]);
         } else {
             return $this->redirectTo('project_settings_members');
         }
     });
 }
コード例 #3
0
ファイル: AppController.php プロジェクト: nirix/traq
 /**
  * Always call this when defining `__construct()` in sub-classes.
  */
 public function __construct()
 {
     $this->db = ConnectionManager::getConnection();
     // Modal?
     if (Request::$headers->has('X-Modal')) {
         $this->isModal = Request::$headers->get('X-Modal') == true;
     }
     // Get current project.
     if (Request::$properties->has('pslug')) {
         $this->currentProject = Project::find('slug', Request::$properties->get('pslug')) ?: null;
         $GLOBALS['current_project'] = $this->currentProject;
         $this->before('*', function () {
             if (!$this->hasPermission('view', $this->currentProject)) {
                 return $this->show404();
             }
         });
     } else {
         $GLOBALS['current_project'] = null;
     }
     // Get current user.
     if ($sessionHash = Request::$cookies->get('traq')) {
         if ($this->currentProject) {
             $user = User::select('u.*')->addSelect('pur.project_role_id')->leftJoin('u', UserRole::tableName(), 'pur', 'pur.project_id = :project_id AND pur.user_id = u.id');
             $user->where('u.session_hash = :session_hash');
             $user->setParameter('project_id', $this->currentProject['id']);
             $user->setParameter('session_hash', $sessionHash);
             $this->currentUser = $user->fetch() ?: null;
         } else {
             $this->currentUser = User::find('session_hash', $sessionHash) ?: null;
         }
         $GLOBALS['current_user'] = $this->currentUser;
     } else {
         $GLOBALS['current_user'] = null;
     }
     $GLOBALS['permissions'] = Permission::getPermissions($this->currentUser, $this->currentProject);
     // Add Traq as first breadcrumb.
     $this->addCrumb(setting('title'), $this->generateUrl('root'));
     // Check if the user has permission to view the current project
     if (isset($this->currentProject)) {
         $this->before('*', function () {
             if (!$this->hasPermission('view')) {
                 return $this->show403();
             }
         });
     }
     // If the user has a `sha1` hashed password, require them to change it because
     // as of Traq 4.1, only mcrypt passwords will work.
     if ($this->currentUser['password_ver'] == 'sha1') {
         $this->before('*', function () {
             if (Request::$properties['controller'] != 'Traq\\Controllers\\UserCP' && Request::$properties['controller'] != 'Traq\\Controllers\\Sessions') {
                 return $this->redirectTo('usercp_password');
             }
         });
     }
 }
コード例 #4
0
ファイル: models.php プロジェクト: nirix/traq
function createProjectManager($project = null, $user = null)
{
    if (!$project) {
        $project = createProject();
    }
    if (!$user) {
        $user = createUser();
    }
    $role = ProjectRole::find(1);
    $relation = new UserRole(['user_id' => $user['id'], 'project_id' => $project['id'], 'project_role_id' => $role['id']]);
    $relation->save();
    return $relation;
}