Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 16-11-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.141
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Todo ayuda Delphius. ¿Sabes qué pasa? Que al cabo he "conseguido" (todavía lo pongo en duda) un sistema de privilegios, de "roles", muy, pero, que, muy sencillo... vamos, a mí me lo parece, y, desde luego, comparándolo con el de WordPress (que es un sistema similar al que traigo entre manos, si bien el mío es mucho más humilde), digo, en WordPress es un asunto bastante complejo, o a mí me lo parece.

Sin embargo, voy a mostrar la "burrada" que he preparado para asignar diferentes permisos a diferentes usuarios. A continuación el método "InitializeUserRoles()" de una clase "Roles":

Código PHP:
  private function InitializeUserRoles(){
    
// 10 = Admin user
    
$this->userRoles[10][ROLES_CAP_MANAGE_SITE] = true;
    
$this->userRoles[10][ROLES_CAP_MANAGE_LINKS] = true;    
    
$this->userRoles[10][ROLES_CAP_MANAGE_TERMS] = true;  
    
$this->userRoles[10][ROLES_CAP_MANAGE_POSTS] = true;   
    
$this->userRoles[10][ROLES_CAP_MANAGE_USERS] = true;    
    
$this->userRoles[10][ROLES_CAP_MANAGE_THEMES] = true;
    
$this->userRoles[10][ROLES_CAP_MANAGE_IMPORT] = true;    
    
$this->userRoles[10][ROLES_CAP_MANAGE_EXPORT] = true;    
    
$this->userRoles[10][ROLES_CAP_MANAGE_OPTIONS] = true;
    
$this->userRoles[10][ROLES_CAP_MANAGE_PROFILE] = true;      
    
$this->userRoles[10][ROLES_CAP_MANAGE_COMMENTS] = true;
    
// 9 = Editor user
    
$this->userRoles[9][ROLES_CAP_MANAGE_SITE] = true;
    
$this->userRoles[9][ROLES_CAP_MANAGE_LINKS] = true;    
    
$this->userRoles[9][ROLES_CAP_MANAGE_TERMS] = true
    
$this->userRoles[9][ROLES_CAP_MANAGE_POSTS] = true;     
    
$this->userRoles[9][ROLES_CAP_MANAGE_PROFILE] = true;          
    
$this->userRoles[9][ROLES_CAP_MANAGE_COMMENTS] = true;
    
// 8 = Author user
    
$this->userRoles[8][ROLES_CAP_MANAGE_SITE] = true;    
    
$this->userRoles[8][ROLES_CAP_MANAGE_POSTS] = true;  
    
$this->userRoles[8][ROLES_CAP_MANAGE_PROFILE] = true;    
    return 
true;
  } 
Eso, que estoy seguro de que puede mejorarse (pero, ahora no estamos viendo eso), se resume en "El usuario con nivel 10 puede administrar el sitio", "El usuario con nivel 10 puede administrar enlaces", etc., etc. Luego, como puede verse, según bajamos el nivel del usuario este puede hacer menos cosas. Eso sería una especie de "tabla de capacidadades según el nivel de cada usuario".

Hay que decir que la clase "Roles" sirve a una propiedad de la clase "User". La clase "User" cuenta con una propiedad (variable, miembro) del tipo "Roles". Cuando se instancia la clase "User" se asigna a la variable "userlevel" (del tipo "Roles") un determinado nivel y, la propia clase "User" cuenta con un método "Can()" que lo que hace es llamar a este otro de la clase "Roles":

Código PHP:
  public function UserCan($capability){    
    if(isset(
$this->userRoles[$this->userLevel][$capability])){
      return 
$this->userRoles[$this->userLevel][$capability];  
    }else{
      return 
false
    }
  } 
Que, como puede verse, viene a comprobar si el usuario del nivel que sea, puede realizar una determinada tarea, tiene la capacidad de realizarla. Básicamente en eso se resume todo... (!). En la base de datos hay una tabla "users" y otra tabla "usersmeta", que están relacionadas. A cada usuario le corresponde un nivel, que se guarda en "usersmeta". Y eso es todo... No hay más... ¡y parece funcionar!

Pero,... francamente, no entiendo entonces a qué tanto "lío" en WordPress con los permisos... y, como sé perfectamente que WordPress es mucho WordPress, y que mi sistema no le llega a la altura de los zapatos... no tengo sino pensar que en algo estoy metiendo la pata, que lo que he hecho no está bien hecho, porque, ¡no puede haberme resultado tan sencillo, ni, en general, resultar tan sencillo como parece y es!

Pero, para terminar, aquí aplica aquello de "Eppurse muove"... porque, con todas las dudas que hay todavía por ahí rondando, el caso es que parece que el puñetero sistema funciona...

En todo caso, y, en lo que respecta a esto último, tal vez debería hacer lo que ha recomendado ArdiIIa, esto es, mirar algún otro programa similar y estudiar su funcionamiento. Y a lo mejor para lo que planteo desde un principio tampoco estaría mal que hiciera esto, pero, bueno, qué leches, quería comentar aquí el asunto a ver qué os parecía a vosotros.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 16-11-2007 a las 21:16:38.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Usuarios y roles morta71 Firebird e Interbase 10 05-02-2008 09:36:58
Permisos, roles y usuarios TJose Firebird e Interbase 0 04-04-2005 16:22:19
Recuperar roles y lista de usuarios de la DB alehillebrand Firebird e Interbase 3 19-02-2005 19:14:21
roles, sesiones y usuarios de oracle 7.3 y delphi 7 rcrmilo Oracle 12 03-06-2004 19:22:23
Roles - Usuarios y privilegios Osorio Firebird e Interbase 2 13-02-2004 23:34:31


La franja horaria es GMT +2. Ahora son las 23:39:01.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi