Skip to content
Snippets Groups Projects
  1. Jun 13, 2015
    • xamgore's avatar
      Explicit user rights management · 248dfda3
      xamgore authored
      It may seem that this commit is rather big, but it's not. Don't be afraid, just read the message. Recently we have understood that it was a bad idea to store rights for pages in a database. So I decided to move the information to PHP layer and make it more clear.
      
      When you write a new controller in Admin/ Dean/ Student/ folder, you should explicitly extend one of Controller_Environment_* classes, and all specific checks will be done there. Additional advantage is manipulating $user variable, so you will have access to extended fields of user, ie User_Student contains StudentID, but User_Teacher does not.
      
      Also, prefer -> operator to []. The reason is simple: IDE shows hints and mismatches only with the first one.
      
      The second important statement is User::checkAccess(User::RIGHTS_*) — call it at the top of *every* function in the Handler/ classes. Exception will be thrown, if user doesn't have enough rights.
      
      NB. If you want to overload "before()" function while extending Environment_* controller, do it in the right way:
      
          public function before() {
              parent::before();   // always first
      
              // any magic you like most
          }
      248dfda3
    • xamgore's avatar
      Email message body is constructed with twig · 174ca99a
      xamgore authored
      174ca99a
    • xamgore's avatar
      Removed errMessages file · 8cc1ed15
      xamgore authored
      8cc1ed15
    • xamgore's avatar
      Merged API folder to Handler · 7be6f9c4
      xamgore authored
      7be6f9c4
  2. Jun 12, 2015
  3. Jun 11, 2015
  4. Jun 10, 2015
  5. Jun 09, 2015
  6. Jun 08, 2015
  7. Jun 06, 2015
    • xamgore's avatar
      Restructuring discipline pages · 75bcc732
      xamgore authored
      /coursework/create — create new coursework
      /discipline/create — create new discipline
      /discipline/127 & /discipline/127/structure — edit the discipline with id 127
      /discipline/127/students — edit the list of attached to discipline students
      
      Moved duplicate code to before() method, some other refactorings.
      75bcc732
    • xamgore's avatar
      Fixme comment about usage of model Discipline · 13179673
      xamgore authored
      13179673
  8. Jun 05, 2015
    • xamgore's avatar
      Reduced inner conditions · f552aa01
      xamgore authored
      f552aa01
    • xamgore's avatar
      Code refactoring · 898c14e6
      xamgore authored
      1. Discipline models have the direct access to fields, for example: $discipline->subjectName, so you don't have to remember them (press ctrl+space). Improves static code analysis. Also, if you make a mismatch, ErrorException will be thrown — this is the most important improvement.
      
      2. There are some operations on disciplines (attach new teacher, transfer discipline to another teacher, an so on), so you can use them: $discipline->attachTeacher(53).
      
      3. Discipline model has array access operators, so you must not convert instances with toArray() method. A common way is:
      
      /* PHP */
      $d = Model_Discipline::load($id);
      $d['extraField'] = 127;
      $twig->Discipline = $d;  // is ok, cause $d is like an array
      
      /* Twig */
      {{ Discipline.extraField }}   // call $d->offsetGet('extraField') method
      
      4. Models Faculty, Student, Teachers and Groups have `getDisciplines()` method, and an array of Model_Discipline will be returned.
      
      5. We use camelCase for all fields: in twig, on the PHP level and also in the database.
      898c14e6
  9. Jun 04, 2015