コード例 #1
0
ファイル: Usergroups.php プロジェクト: mpf-soft/app-basic
 public function actionCreate()
 {
     $model = new UserGroup();
     if (isset($_POST['save'])) {
         $model->setAttributes($_POST['UserGroup']);
         if ($model->save()) {
             Messages::get()->success("Group saved!");
             $this->getRequest()->goToPage('usergroups');
         }
     }
     $this->assign('model', $model);
 }
コード例 #2
0
 function save(array $params)
 {
     $response = new ResponseEntity();
     DB::transaction(function () use(&$response, $params) {
         $empId = isset($params['empId']) ? intval($params['empId']) : 0;
         $idNumber = Config::get('hris_system.employee_id_prefix') . $params['id_number'];
         $existingEmp = Employee::with('user')->find($empId);
         // check for duplicate id_number
         $tempEmp = Employee::where('id_number', '=', $idNumber)->first();
         if ($tempEmp) {
             if (!$existingEmp) {
                 // new
                 $response->setMessages(['id_number' => ['Id number is already taken']]);
                 return $response;
             } else {
                 if ($existingEmp && $existingEmp->id != $tempEmp->id) {
                     // update
                     $response->setMessages(['id_number' => ['Id number is already taken']]);
                     return $response;
                 }
             }
         }
         if ($empId > 0 && !$existingEmp) {
             // check when updating
             $response->setMessages(['Employee is not available!']);
             return $response;
         } else {
             // employee user account
             $user = $existingEmp ? $existingEmp->user : new User();
             $user->email = $params['email'];
             if (!$existingEmp) {
                 // for new employee user account
                 $user->password = Hash::make($idNumber);
                 //default password is the ID Number of the employee
                 $user->active = '1';
             }
             $user->save();
             // clear user group
             UserGroup::where('user_id', $user->id)->delete();
             // assign group
             $ug = new UserGroup();
             $ug->user_id = $user->id;
             $ug->group_id = $params['group_id'];
             $ug->save();
             // employee records
             $employee = $existingEmp ? $existingEmp : new Employee();
             $employee->user_id = $user->id;
             $employee->id_number = $idNumber;
             $employee->first_name = $params['first_name'];
             $employee->last_name = $params['last_name'];
             if (isset($params['middle_name'])) {
                 $employee->middle_name = $params['middle_name'];
             }
             if (isset($params['supervisor_id'])) {
                 $employee->supervisor_id = $params['supervisor_id'];
             }
             $employee->sex = $params['sex'];
             $employee->birthday = Carbon::createFromFormat('m/d/Y', $params['birthday']);
             $employee->shift_id = $params['shift_id'];
             $employee->active = $existingEmp ? $existingEmp->active : '1';
             $ok = $employee->save();
             if ($ok) {
                 $response->setSuccess(true);
                 $response->setData(['empId' => $employee->id]);
                 $response->setMessages(['Employee successfully ' . ($existingEmp ? 'saved' : 'created')]);
             } else {
                 $response->setMessages(['Failed to ' . ($existingEmp ? 'save' : 'create') . ' employee!']);
             }
         }
     });
     return $response;
 }
コード例 #3
0
 public function postCreateMobileApp(Request $request)
 {
     $email = $request->input('email');
     $password = $request->input('password');
     $password_again = $request->input('password_again');
     $group_to_register_in = $request->input('group_to_register_in');
     $inputs = ['email' => $email, 'password' => $password, 'password_again' => $password_again, 'group_to_register_in' => $group_to_register_in];
     $validator = validator::make($request->all(), ['email' => 'required|unique:users|email', 'password' => 'required|max:16|min:6', 'password_again' => 'required|same:password', 'group_to_register_in' => 'required|in:1,2,3']);
     if ($validator->fails()) {
         return ApiResponseClass::errorResponse('You Have Some Input Errors', $inputs, $validator->errors());
     }
     $group_id = null;
     if ($group_to_register_in == Groups::Student_Group_Id) {
         $group_id = Groups::Student_Group_Id;
     } elseif ($group_to_register_in == Groups::Administrator_Group_ID) {
         $group_id = Groups::Administrator_Group_ID;
     } elseif ($group_to_register_in == Groups::Teacher_Group_Id) {
         $group_id = Groups::Teacher_Group_Id;
     }
     DB::beginTransaction();
     try {
         Groups::findorFail($group_id);
         $user = new User();
         $user->email = $email;
         $user->password = Hash::make($password);
         $user->activated = 0;
         $user->email_updated_at = date("Y-m-d h:i:s");
         $user->password_updated_at = date("Y-m-d h:i:s");
         $user->activation_code = str_random(64);
         if (!$user->save()) {
             throw new \ErrorException();
         }
         $user_group = new UserGroup();
         $user_group->user_id = $user->id;
         $user_group->group_id = $group_id;
         if (!$user_group->save()) {
             throw new \ErrorException();
         }
         DB::commit();
     } catch (ModelNotFoundException $e) {
         DB::rollback();
         return ApiResponseClass::errorResponse('ModelNotFoundException', $inputs);
     } catch (\ErrorException $e) {
         DB::rollback();
         return ApiResponseClass::errorResponse('ModelNotSavedException', $inputs);
     }
     // Send mail to the user if not the test Shop Id.
     return ApiResponseClass::successResponse($user, $inputs);
 }