static function addRole($app)
 {
     // Validate parameters
     if (!v::key('role', v::stringType())->validate($app->request->post()) || !v::key('desc', v::stringType())->validate($app->request->post())) {
         // Validate input parameters
         return $app->render(400, array('msg' => 'Add role failed. Check your parameters and try again.'));
     }
     // Verify a unique slug
     $slug = self::makeSlug($app->request->post('role'));
     $existing = RoleData::selectRoleBySlug($slug);
     if ($existing) {
         return $app->render(400, array('msg' => 'Could not add role. A role with that name already exists.', 'role' => $existing));
     }
     // Add the verifed role
     $roleId = RoleData::insertRole(array(":role" => $app->request->post('role'), ":slug" => self::makeSlug($app->request->post('role')), ":desc" => $app->request->post('desc'), ":created_user_id" => APIAuth::getUserId(), ":last_updated_by" => APIAuth::getUserId()));
     // Return success
     if ($roleId) {
         GroupData::addNewRoleToAdminGroup($roleId);
         $role = RoleData::getRole($roleId);
         return $app->render(200, array('role' => $role));
     } else {
         return $app->render(400, array('msg' => 'Could not add new role.'));
     }
 }
 static function assignRole($app)
 {
     if (!v::key('groupId', v::stringType())->validate($app->request->post()) || !v::key('roleId', v::stringType())->validate($app->request->post())) {
         return $app->render(400, array('msg' => 'Could not assign role from group. Check your parameters and try again.'));
     }
     $data = array(':auth_group_id' => $app->request->post('groupId'), ':auth_role_id' => $app->request->post('roleId'), ":created_user_id" => APIAuth::getUserId());
     if (GroupData::insertRoleAssignment($data)) {
         return $app->render(200, array('msg' => 'Role has been assigned from group.'));
     } else {
         return $app->render(400, array('msg' => 'Could not assign role to group.'));
     }
 }