示例#1
0
 /**
  * Assigns a role to a user
  *
  * @param mixed $Role
  *            Id, Path or Title
  * @param integer $UserID
  *            UserID (use 0 for guest)
  *
  * @throws RbacUserNotProvidedException
  * @return boolean inserted or existing
  */
 function assign($Role, $UserID = null)
 {
     if ($UserID === null) {
         throw new \RbacUserNotProvidedException("\$UserID is a required argument.");
     }
     if (is_numeric($Role)) {
         $RoleID = $Role;
     } else {
         if (substr($Role, 0, 1) == "/") {
             $RoleID = Jf::$Rbac->Roles->pathId($Role);
         } else {
             $RoleID = Jf::$Rbac->Roles->titleId($Role);
         }
     }
     $res = Jf::sql("INSERT INTO {$this->tablePrefix()}userroles\n                (UserID,RoleID,AssignmentDate)\n                VALUES (?,?,?)\n                ", $UserID, $RoleID, Jf::time());
     return $res >= 1;
 }