public void Form2obj(ITableWithPermissions obj) { int acccessLevel = 0; int.TryParse(TxtAccessLevel.Text, out acccessLevel); int writeAccessLevel = 0; int.TryParse(TxtWriteAccessLevel.Text, out writeAccessLevel); obj.ReadAccessLevel = acccessLevel; obj.ReadAccessCode = TxtAccessCode.Text; obj.ReadAccessType = (MenuAccesstype)int.Parse(DropAccessType.SelectedValue); obj.WriteAccessLevel = writeAccessLevel; obj.WriteAccessCode = TxtWriteAccessCode.Text; obj.WriteAccessType = (MenuAccesstype)int.Parse(DropWriteAccessType.SelectedValue); //read roles obj.ReadRolenames.Clear(); foreach (ListItem item in ListRoles.Items) { if (item.Selected) obj.ReadRolenames.Add(item.Value); } //write roles obj.WriteRolenames.Clear(); foreach (ListItem item in ListWriteRoles.Items) { if (item.Selected) obj.WriteRolenames.Add(item.Value); } }
public void Obj2form(ITableWithPermissions obj) { LitId.Text = obj.ReadPermissionId.ToString(); LitWriteId.Text = obj.WritePermissionId.ToString(); TxtAccessLevel.Text = obj.ReadAccessLevel.ToString(); TxtWriteAccessLevel.Text = obj.WriteAccessLevel.ToString(); TxtAccessCode.Text = obj.ReadAccessCode; TxtWriteAccessCode.Text = obj.WriteAccessCode; Utility.SetDropByValue(DropAccessType, ((int)obj.ReadAccessType).ToString()); Utility.SetDropByValue(DropWriteAccessType, ((int)obj.WriteAccessType).ToString()); Utility.SetListBoxByValues(ListRoles, obj.ReadRolenames, true); Utility.SetListBoxByValues(ListWriteRoles, obj.WriteRolenames, true); }
/// <summary> /// update obj object in DAL class, before db update /// </summary> /// <param name="obj"></param> public void UpdatePermissionObj(ITableWithPermissions obj) { //read permission (before trans) if (obj.ReadAccessType == MenuAccesstype.Public) obj.ReadPermissionId = 0; else obj.ReadPermissionId = new PermissionProvider().AddRolesToPermission( obj.ReadPermissionId, obj.ReadRolenames, true); //write permission (before trans) if (obj.WriteAccessType == MenuAccesstype.Public) obj.WritePermissionId = 0; else obj.WritePermissionId = new PermissionProvider().AddRolesToPermission( obj.WritePermissionId, obj.WriteRolenames, true); }
public bool IsItemNotAllowedForWrite(ITableWithPermissions obj) { return !IsItemAllowed(obj, true); }
public bool IsItemNotAllowed(ITableWithPermissions obj) { return !IsItemAllowed(obj, false); }
/// <summary> /// check current user permissions for ITableWithPermissions obj /// </summary> /// <param name="obj"></param> /// <returns>if obj is allowed or not for current user</returns> public bool IsItemAllowed(ITableWithPermissions obj, bool writeMode) { bool result = true; MenuAccesstype accessType; List<string> rolenames; string accessCode; int accessLevel; if (writeMode) { accessType = obj.WriteAccessType; rolenames = obj.WriteRolenames; accessCode = obj.WriteAccessCode; accessLevel = obj.WriteAccessLevel; } else { accessType = obj.ReadAccessType; rolenames = obj.ReadRolenames; accessCode = obj.ReadAccessCode; accessLevel = obj.ReadAccessLevel; } if (accessType != MenuAccesstype.Public) { //check current logged user permission result = false; if (PgnUserCurrent.IsAuthenticated) { if (Roles.IsUserInRole("admin")) { //admin always granted result = true; } else if (rolenames.Count > 0) { //check user roles //obj.Rolenames uses roles cached in cookie //Roles.GetRolesForUser() launch the method each time foreach (string role in rolenames) { if (Roles.IsUserInRole(role)) { result = true; break; } } } else { //all registered users result = true; } if (result && !Roles.IsUserInRole("admin")/*20150127*/) { //check AccessCode if (!string.IsNullOrEmpty(accessCode)) { if (!string.IsNullOrEmpty(PgnUserCurrent.Current.AccessCode)) { if (accessCode != PgnUserCurrent.Current.AccessCode) result = false; } } //checl AccessLevel if (accessLevel > 0) { if (accessLevel > PgnUserCurrent.Current.AccessLevel) result = false; } } } } return result; }
public void CreatePermissionObj(ITableWithPermissions obj) { //create read permission obj.ReadPermissionId = this.AddRolesToPermission( obj.ReadPermissionId, obj.ReadRolenames, true); //create write permission obj.WritePermissionId = this.AddRolesToPermission( obj.WritePermissionId, obj.WriteRolenames, true); }