Beispiel #1
0
 public function buildGroup($groupName, $categoryId, $introduction, $creatorId, $picture = '')
 {
     $group = new Group();
     $group->setDefaults();
     $group->name = $groupName;
     $group->categoryId = $categoryId;
     $group->intro = $introduction;
     $group->creator = $creatorId;
     $group->picture = $picture;
     $group->save();
     $groupUser = new GroupUser();
     $groupUser->groupId = $group->id;
     $groupUser->userId = $group->creator;
     $groupUser->joinTime = date('Y-m-d H:i:s');
     $groupUser->status = 1;
     $groupUser->save();
     return $group;
 }
Beispiel #2
0
 /**
  * Create the application document registry
  *
  * @param array $aData
  * @return string
  */
 public function create($aData)
 {
     $oConnection = Propel::getConnection(GroupUserPeer::DATABASE_NAME);
     try {
         $oGroupUser = new GroupUser();
         $oGroupUser->fromArray($aData, BasePeer::TYPE_FIELDNAME);
         if ($oGroupUser->validate()) {
             $oConnection->begin();
             $iResult = $oGroupUser->save();
             $oConnection->commit();
             return $iResult;
         } else {
             $sMessage = '';
             $aValidationFailures = $oGroupUser->getValidationFailures();
             foreach ($aValidationFailures as $oValidationFailure) {
                 $sMessage .= $oValidationFailure->getMessage() . '<br />';
             }
             throw new Exception('The registry cannot be created!<br />' . $sMessage);
         }
     } catch (Exception $oError) {
         $oConnection->rollback();
         throw $oError;
     }
 }
 /**
  * Edit group
  *
  * @param void
  * @return null
  */
 function edit_group()
 {
     $this->setTemplate('add_group');
     if (!can_manage_security(logged_user())) {
         flash_error(lang('no access permissions'));
         ajx_current("empty");
         return;
     }
     // if
     $group = Groups::findById(get_id());
     if (!$group instanceof Group) {
         flash_error(lang('group dnx'));
         $this->redirectTo('administration', 'groups');
     }
     // if
     if (logged_user()->isAdministrator()) {
         $projects = Projects::getAll();
     } else {
         $projects = null;
     }
     $permissions = ProjectUsers::getNameTextArray();
     $group_data = array_var($_POST, 'group');
     if (!is_array($group_data)) {
         $group_data = array('name' => $group->getName(), 'can_edit_company_data' => $group->getCanEditCompanyData(), 'can_manage_security' => $group->getCanManageSecurity(), 'can_manage_workspaces' => $group->getCanManageWorkspaces(), 'can_manage_configuration' => $group->getCanManageConfiguration(), 'can_manage_contacts' => $group->getCanManageContacts(), 'can_manage_templates' => $group->getCanManageTemplates(), 'can_manage_reports' => $group->getCanManageReports(), 'can_manage_time' => $group->getCanManageTime(), 'can_add_mail_accounts' => $group->getCanAddMailAccounts());
         // array
     }
     // if
     $users = GroupUsers::getUsersByGroup($group->getId());
     if ($users) {
         foreach ($users as $usr) {
             $group_data['user[' . $usr->getId() . ']'] = true;
         }
     }
     tpl_assign('group', $group);
     tpl_assign('group_data', $group_data);
     tpl_assign('permissions', $permissions);
     tpl_assign('projects', $projects);
     if (is_array(array_var($_POST, 'group'))) {
         $group->setFromAttributes($group_data);
         if (array_var($group_data, "can_edit_company_data") != 'checked') {
             $group->setCanEditCompanyData(false);
         }
         if (array_var($group_data, "can_manage_security") != 'checked') {
             $group->setCanManageSecurity(false);
         }
         if (array_var($group_data, "can_manage_configuration") != 'checked') {
             $group->setCanManageConfiguration(false);
         }
         if (array_var($group_data, "can_manage_workspaces") != 'checked') {
             $group->setCanManageWorkspaces(false);
         }
         if (array_var($group_data, "can_manage_contacts") != 'checked') {
             $group->setCanManageContacts(false);
         }
         if (array_var($group_data, "can_manage_templates") != 'checked') {
             $group->setCanManageTemplates(false);
         }
         if (array_var($group_data, "can_manage_reports") != 'checked') {
             $group->setCanManageReports(false);
         }
         if (array_var($group_data, "can_manage_time") != 'checked') {
             $group->setCanManageTime(false);
         }
         if (array_var($group_data, "can_add_mail_accounts") != 'checked') {
             $group->setCanAddMailAccounts(false);
         }
         try {
             DB::beginWork();
             //set permissions
             $permissionsString = array_var($_POST, 'permissions');
             if ($permissionsString && $permissionsString != '') {
                 $permissions = json_decode($permissionsString);
             }
             if (is_array($permissions) && count($permissions) > 0) {
                 //Clear old modified permissions
                 $ids = array();
                 foreach ($permissions as $perm) {
                     $ids[] = $perm->wsid;
                 }
                 ProjectUsers::clearByUser($group, implode(',', $ids));
                 //Add new permissions
                 //TODO - Make batch update of these permissions
                 foreach ($permissions as $perm) {
                     if (ProjectUser::hasAnyPermissions($perm->pr, $perm->pc)) {
                         $relation = new ProjectUser();
                         $relation->setProjectId($perm->wsid);
                         $relation->setUserId($group->getId());
                         $relation->setCheckboxPermissions($perm->pc);
                         $relation->setRadioPermissions($perm->pr);
                         $relation->save();
                     }
                     //endif
                     //else if the user has no permissions at all, he is not a project_user. ProjectUser is not created
                 }
                 //end foreach
             }
             // if
             $group->save();
             GroupUsers::clearByGroup($group);
             if (array_var($_POST, 'user')) {
                 foreach (array_var($_POST, 'user') as $user_id => $val) {
                     if ($val == 'checked' && is_numeric($user_id) && Users::findById($user_id) instanceof User) {
                         $gu = new GroupUser();
                         $gu->setGroupId($group->getId());
                         $gu->setUserId($user_id);
                         $gu->save();
                     }
                 }
             }
             ApplicationLogs::createLog($group, null, ApplicationLogs::ACTION_EDIT);
             DB::commit();
             flash_success(lang('success edit group', $group->getName()));
             ajx_current("back");
         } catch (Exception $e) {
             DB::rollback();
             tpl_assign('error', $e);
         }
         // try
     }
     // if
 }
 public function apiSignUp()
 {
     $message = "";
     $returnArray = array();
     $securimage = new Securimage();
     $input = Input::all();
     if (!isset($input['securitycode'])) {
         $input['securitycode'] = "";
     }
     if ($securimage->check($input['securitycode']) == false) {
         $message = "Incorrect answer";
     } else {
         $rules = array('username' => 'required|unique:users', 'password' => 'required', 'screenhandle' => 'required', 'email' => 'required|unique:users|email', 'firstname' => 'required|alpha', 'lastname' => 'required', 'city' => 'required', 'country' => 'required');
         $messages = array('screenhandle.required' => 'The Roller name can not be blank');
         //$validator = Validator::make($input, $rules, $messages);
         $username = DB::table('users')->where('username', Input::get('username'))->get();
         $user = DB::table('users')->where('email', Input::get('email'))->get();
         $group = DB::table('groups')->where('keycode', Input::get('keycode'))->get();
         //print_r($user);
         //print_r(count($group));
         // error check
         if (!Input::get('password')) {
             $message = "Password can not be blank";
         }
         if (!Input::get('lastname')) {
             $message = "Lastname can not be blank";
         }
         if (!Input::get('firstname')) {
             $message = "Firstname can not be blank ";
         }
         if (!Input::get('securitycode')) {
             $message = "Security code can't be blank !";
         }
         if (!Input::get('tos')) {
             $message = "You need to agree with EULA";
         }
         if (count($group) == 0) {
             $message = "Your keycode is invalid";
         }
         if (filter_var(Input::get('email'), FILTER_VALIDATE_EMAIL) === false) {
             $message = "Please enter a valid email address !";
         }
         if (count($user) > 0) {
             $message = "This emailalready exists !";
         }
         if (count($username) > 0) {
             $message = "This username already exists !";
         }
         // end error check
         //echo $message;
         // get incremental number
         $rollername = "Roller " . rand(1, 999);
         // generate roller name
         //print_r($input['securitycode']);
         if (!$message) {
             // begin the sigh - up proccess
             $user = new User();
             $user->username = Input::get('email');
             //$user->password = Hash::make(Input::get('password'));
             $user->password = Hash::make(Input::get('password'));
             $user->screenhandle = $rollername;
             $user->firstname = Input::get('firstname');
             $user->lastname = Input::get('lastname');
             $user->email = Input::get('email');
             //$user->picture = "L3VwbG9hZHMvcGl4L3VzZXIvam9obi5sZS5wbmc=";
             $user->state = "N/A";
             //$user->country = Input::get('country');
             $user->keycode = Input::get('keycode');
             //$user->description = Input::get('description');
             //$user->picture = '';
             $user->suspended = 0;
             // add the user to the default group Sydney Group
             $user->save();
             $returnArray['user_id'] = $user->id;
             Session::put('user.lastinsertid', $user->id);
             $groupuser = new GroupUser();
             //// Search the matching keycode inside the group table then enroll user to that group
             if ($user->keycode) {
                 $group = Group::where('keycode', strtolower(Input::get('keycode')))->get();
                 //print_r($group[0]->id);
                 // check this constaint
                 $groupuser->group_id = $group[0]->id;
                 $groupuser->user_id = $user->id;
                 $groupuser->save();
                 // add notification to the group
                 //$this->addNotification($post->user_id, 'newgroupmember', $input['postid'], "likes your post" );
                 //loop thru
                 $this->sendNotificationToGroup($group[0]->id, $user->id);
                 // end notification adding
             }
             if (Input::get('token')) {
                 DB::table('custom_user_token')->insert(array('user_id' => $user->id, 'token' => Input::get('token')));
             }
             $emailContent['firstname'] = Input::get('firstname');
             $emailContent['username'] = Input::get('username');
             $emailContent['password'] = Input::get('password');
             $emailContent['teamname'] = $group[0]->name;
             //New Account confirmation email
             $baseController = new BaseController();
             $baseController->notificationEmail($input['email'], $emailContent, "Welcome to On A Roll 21™", Input::get('firstname') . ' ' . Input::get('lastname'), 'signup');
             //print_r($baseController);
             // end the sign up process
             $message = "true";
         }
     }
     $returnArray['status'] = $message;
     return json_encode($returnArray);
 }
Beispiel #5
0
 function setAsAdministrator($setAsAdmin = true)
 {
     if (!logged_user() instanceof User || can_manage_security(logged_user())) {
         if ($setAsAdmin && !$this->isAdministrator()) {
             $group_user = new GroupUser();
             $group_user->setUserId($this->getId());
             $group_user->setGroupId(Group::CONST_ADMIN_GROUP_ID);
             $group_user->save();
         }
         if (!$setAsAdmin && $this->getId() != 1 && $this->isAdministrator()) {
             GroupUsers::delete('user_id = ' . $this->getId() . ' and group_id = ' . Group::CONST_ADMIN_GROUP_ID);
         }
     }
 }
Beispiel #6
0
 public function actionAccept($censorId = null)
 {
     $censor = Censor::get($censorId);
     if ($censor !== null) {
         $groupUser = new GroupUser();
         $groupUser->groupId = $censor->secondId;
         $groupUser->userId = $censor->firstId;
         $groupUser->joinTime = date('Y-m-d H:i:s');
         $groupUser->status = 1;
         if (!GroupUser::isUserInGroup($groupUser->userId, $groupUser->groupId)) {
             $groupUser->save();
             $group = Group::get($groupUser->groupId);
             $group->memberCount++;
             $group->save();
             $this->flash("message", "The request is processed.");
             $title = "Join group request accepted";
             $content = 'Group creator has accepted your request of joining in group ' . RHtml::linkAction('group', $group->name, 'detail', $group->id);
             $content = RHtml::encode($content);
             Message::sendMessage("group", $group->id, $groupUser->userId, $title, $content);
         } else {
             $this->flash("warning", "You're already a member of this group.");
         }
         $censor->pass();
         $this->redirectAction('message', 'view');
     }
 }
 /**
  * Finish the installation - create owner company and administrator
  *
  * @param void
  * @return null
  */
 function complete_installation()
 {
     if (Companies::getOwnerCompany() instanceof Company) {
         die('Owner company already exists');
         // Somebody is trying to access this method even if the user already exists
     }
     // if
     $form_data = array_var($_POST, 'form');
     tpl_assign('form_data', $form_data);
     if (array_var($form_data, 'submited') == 'submited') {
         try {
             $admin_password = trim(array_var($form_data, 'admin_password'));
             $admin_password_a = trim(array_var($form_data, 'admin_password_a'));
             if (trim($admin_password) == '') {
                 throw new Error(lang('password value required'));
             }
             // if
             if ($admin_password != $admin_password_a) {
                 throw new Error(lang('passwords dont match'));
             }
             // if
             DB::beginWork();
             Users::delete();
             // clear users table
             Companies::delete();
             // clear companies table
             // Create the administrator user
             $administrator = new User();
             $administrator->setId(1);
             $administrator->setCompanyId(1);
             $administrator->setUsername(array_var($form_data, 'admin_username'));
             $administrator->setEmail(array_var($form_data, 'admin_email'));
             $administrator->setPassword($admin_password);
             $administrator->setCanEditCompanyData(true);
             $administrator->setCanManageConfiguration(true);
             $administrator->setCanManageSecurity(true);
             $administrator->setCanManageWorkspaces(true);
             $administrator->setCanManageContacts(true);
             $administrator->setCanManageTemplates(true);
             $administrator->setCanManageReports(true);
             $administrator->setCanManageTime(true);
             $administrator->setCanAddMailAccounts(true);
             $administrator->setAutoAssign(false);
             $administrator->setPersonalProjectId(1);
             $administrator->setType('admin');
             $administrator->save();
             $group = new Group();
             $group->setName('administrators');
             $group->setAllPermissions(true);
             $group->setId(Group::CONST_ADMIN_GROUP_ID);
             $group->save();
             $group_user = new GroupUser();
             $group_user->setGroupId(Group::CONST_ADMIN_GROUP_ID);
             $group_user->setUserId($administrator->getId());
             $group_user->save();
             $project = new Project();
             $project->setId(1);
             $project->setP1(1);
             $project->setName(new_personal_project_name($administrator->getUsername()));
             $project->setDescription(lang('files'));
             $project->setCreatedById($administrator->getId());
             $project->save();
             $project_user = new ProjectUser();
             $project_user->setProjectId($project->getId());
             $project_user->setUserId($administrator->getId());
             $project_user->setCreatedById($administrator->getId());
             $project_user->setAllPermissions(true);
             $project_user->save();
             // Create a company
             $company = new Company();
             $company->setId(1);
             $company->setClientOfId(0);
             $company->setName(array_var($form_data, 'company_name'));
             $company->setCreatedById(1);
             $company->save();
             DB::commit();
             $this->redirectTo('access', 'login');
         } catch (Exception $e) {
             tpl_assign('error', $e);
             DB::rollback();
         }
         // try
     }
     // if
 }