/AzManADAMStore/AzManADAMStore/UserProfileDefinition.cs
C# | 255 lines | 170 code | 27 blank | 58 comment | 35 complexity | ed92bf83230014be10349b73bae14fb4 MD5 | raw file
- using System;
- using System.Collections.Generic;
- using System.Text;
-
- namespace AzManADAMStore
- {
- /// <summary>
- /// Clase que encapsula el perfil de un usuario
- /// </summary>
- public class UserProfileDefinition
- {
- /// <summary>
- /// Nombre del usuario
- /// </summary>
- public string UserName;
-
- /// <summary>
- /// Lista de toles asignados
- /// </summary>
- public Role.RoleList Roles;
-
-
- public UserProfileDefinition(string UserName)
- {
- this.UserName = UserName;
- this.Roles = new Role.RoleList();
- }
-
-
-
- /// <summary>
- /// Indica si el usuario pertence al rol indicado
- /// </summary>
- /// <param name="RoleName">Rol a buscar</param>
- /// <returns></returns>
- public bool IsUserInRole(string RoleName)
- {
- try
- {
- bool res = false;
- if (string.IsNullOrEmpty(RoleName))
- return false;
-
- return IsUserInRole(RoleName, this.Roles);
- }
- catch
- {
- return false;
- }
- }
-
- /// <summary>
- /// Indica si el usuario pertence al rol indicado
- /// </summary>
- /// <param name="RoleName">Rol a buscar</param>
- /// <param name="RolesList"></param>
- /// <returns></returns>
- internal bool IsUserInRole(string RoleName, Role.RoleList RolesList)
- {
- try
- {
- bool res = false;
- if (!string.IsNullOrEmpty(RoleName))
- if (RolesList != null)
- if (RolesList.ContainsKey(RoleName))
- res = true;
- else
- foreach (Role rol in RolesList.Values)
- if ((res = IsUserInRole(RoleName, rol.Roles)))
- break;
-
- return res;
- }
- catch
- {
- return false;
- }
- }
-
- /// <summary>
- /// Indica si el usuario actual tiene asignado la tarea indicada
- /// </summary>
- /// <param name="TaskName">Nombre de la tarea a validar</param>
- /// <returns></returns>
- public bool IsUserInTask(string TaskName)
- {
- try
- {
- if (string.IsNullOrEmpty(TaskName))
- return false;
-
- return IsUserInTask(TaskName, this.Roles);
- }
- catch
- {
- return false;
- }
- }
-
- /// <summary>
- /// Indica si el usuario actual tiene asignado la tarea indicada
- /// </summary>
- /// <param name="TaskName">Nombre de la tarea a validar</param>
- /// <param name="RolesList">r</param>
- /// <returns></returns>
- internal bool IsUserInTask(string TaskName, Role.RoleList RolesList)
- {
- try
- {
- bool res = false;
- if (!string.IsNullOrEmpty(TaskName))
- if (RolesList != null)
- foreach (Role rol in RolesList.Values)
- {
- if(rol.Tasks != null)
- if(rol.Tasks.ContainsKey(TaskName))
- res = true;
- else
- foreach (Task task in rol.Tasks.Values)
- if ((res = IsUserInTask(TaskName, task.Tasks)))
- break;
-
- if(!res)
- res = IsUserInTask(TaskName, rol.Roles);
- }
-
- return res;
- }
- catch
- {
- return false;
- }
- }
-
- /// <summary>
- /// Indica si el usuario actual tiene asignado la tarea indicada
- /// </summary>
- /// <param name="TaskName">Nombre de la tarea a validar</param>
- /// <param name="TaskList"></param>
- /// <returns></returns>
- internal bool IsUserInTask(string TaskName, Task.TaskList TaskList)
- {
- try
- {
- bool res = false;
- if (!string.IsNullOrEmpty(TaskName))
- if (TaskList != null)
- if (TaskList.ContainsKey(TaskName))
- res = true;
- else
- foreach (Task task in TaskList.Values)
- if ((res = IsUserInTask(TaskName, task.Tasks)))
- break;
-
- return res;
- }
- catch
- {
- return false;
- }
- }
-
-
- /// <summary>
- /// Indica si el usuario actual tiene asignado la tarea indicada.
- /// Una operación debería de estar asociada a una tarea.
- /// </summary>
- /// <param name="TaskName">Nombre de la tarea que contiene la operación</param>
- /// <param name="OperationName">Nombre de la operación a validar</param>
- /// <returns></returns>
- public bool IsUserInTaskOperation(string TaskName, string OperationName)
- {
- try
- {
- if (string.IsNullOrEmpty(TaskName))
- return false;
-
- if (string.IsNullOrEmpty(OperationName))
- return false;
-
- return IsUserInTaskOperation(TaskName, OperationName, this.Roles);
- }
- catch
- {
- return false;
- }
- }
-
- /// <summary>
- /// Indica si el usuario actual tiene asignado la tarea indicada
- /// </summary>
- /// <param name="TaskName">Nombre de la tarea a validar</param>
- /// <param name="OperationName"></param>
- /// <param name="RolesList">r</param>
- /// <returns></returns>
- internal bool IsUserInTaskOperation(string TaskName, string OperationName, Role.RoleList RolesList)
- {
- try
- {
- bool res = false;
- if (!string.IsNullOrEmpty(TaskName))
- if (RolesList != null)
- foreach (Role rol in RolesList.Values)
- {
- if (rol.Tasks != null)
- if (rol.Tasks.ContainsKey(TaskName))
- res = (rol.Tasks[TaskName].Operations.ContainsKey(OperationName));
- else
- foreach (Task task in rol.Tasks.Values)
- if ((res = IsUserInTaskOperation(TaskName, OperationName, task.Tasks)))
- break;
-
- if (!res)
- res = IsUserInTaskOperation(TaskName, OperationName, rol.Roles);
- }
-
- return res;
- }
- catch
- {
- return false;
- }
- }
-
- /// <summary>
- /// Indica si el usuario actual tiene asignado la tarea indicada
- /// </summary>
- /// <param name="TaskName">Nombre de la tarea a validar</param>
- /// <param name="OperationName"></param>
- /// <param name="TaskList"></param>
- /// <returns></returns>
- internal bool IsUserInTaskOperation(string TaskName, string OperationName, Task.TaskList TaskList)
- {
- try
- {
- bool res = false;
- if (!string.IsNullOrEmpty(TaskName))
- if (TaskList != null)
- if (TaskList.ContainsKey(TaskName))
- res = (TaskList[TaskName].Operations.ContainsKey(OperationName));
- else
- foreach (Task task in TaskList.Values)
- if ((res = IsUserInTaskOperation(TaskName, OperationName, task.Tasks)))
- break;
-
- return res;
- }
- catch
- {
- return false;
- }
- }
-
- }
- }